本文讨论:Hibernate级联查询的分页问题
在Hibernate中,查询实体对象的同时级联查询其关联的集合对象并对其进行分页处理,此时Hibernate并不是真正的分页,而是将数据表的全部数据加载到内存中,而后在内存中进行分页处理,这种方式也叫做假分页!当不级联查询关联的集合对象时,Hibernate使用的才是真分页(MySQL下是limit),那么为什么会出现这种情况呢?该如何处理呢?
原因是Hibernate在fetch级联对象的时候,使用left outer join,那么就会出现重复的记录,所以这种情况下Hibernate使用的是先查询全部结果然后在内存中进行排序处理(貌似对于这种情况没有很好的解决方法),只能是先查询出该对象,然后一个个的根据对象Id查询出关联对象?这不是一种好的解决方法,但是目前还没有想到更好的~如果您有更好的解决方法,我们可以一起探讨!