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

hibernate的分页排序BUG,有人会解决吗?
在用hibernate处理oracle分页并排序问题时候会存在一个问题:第一页的数据在第二页中也显示,而应该在第二页显示的数据没有显示。 
请问一下,有没有遇到这种问题的?如何解决啊?原因我知道,但不知道怎么解决。 
原因就是查询第一页时所生成的查询代码和第二页及之后页的查询代码不一样,怎么解决呢? 

第一页时是: 
select * from (myquery) where rownum<10 
第二页及之后页时是: 
select * from (select row_.*,rownum rownum_ from (myquery) row_) where rownum_<=20 and rownum_>10 

以上myquery就是我自己传入的查询代码,里面是包含orderby的 

------解决方案--------------------
引用:
引用:
加上 order by 主键


1.我的代码中 myquery 部分是包含order by的
2.不一定要按主键排序吧?实际的业务情况,有些是不能按主键排序的。

有可能 myquery  部分的排序大面积重复 所以没有一个标识
oracle 每次查询返回的结果顺序不是相同的 
order by 支持按多列排序 你可以在最后加上 id 不影响什么