日期:2014-05-18  浏览次数:20593 次

hibernate的严重性能问题
A表关联5个表,当对A表读取1000条数据时,查询数据库次数竟然是5*1000+1=5001次。晕。
如果对这6个表用视图连接,用jdbc只需对数据库读一次就能拿出1000条数据了。
难道hibernate不适用于多表联查吗?

------解决方案--------------------
级联设置的不对头

或者你可以考虑一下使用 h 的原生SQL 查询方式
------解决方案--------------------
要看你,读取数据的方式了,如果你使用iterator读取的话,当然需要这么多次。
------解决方案--------------------
这种情况下,用Hibernate的关联查询显然出现严重的性能障碍,解决的办法有几种:
1、使用Hibernate的二级缓存,不过在数据量非常大的情况下,缓存效果不明显
2、使用原生sql
3、建立Hibernate到view的映射,但只能查询,不能更新数据
总的来说,Hibernate在处理复杂数据的时候还是有些力不从心,这就要求在数据设计的时候多下一些功夫了。