0 0

hibernate的分页排序BUG,有人会解决吗?5

在用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的
2011年7月26日 14:35

3个答案 按时间排序 按投票排序

0 0

其实是碰到数据库执行计划不一致 ,hibernate oracle 分页 第一页和第二页的sql 是不一样的 http://blog.csdn.net/polohoho1/article/details/9283957

2014年3月26日 11:17
0 0

,刚好遇到同样问题,楼上的答案解决了,我加个主键排序。

2011年8月09日 17:08
0 0

首先这不是hibernate的bug,是oracle数据库的特性,oracle的数据库分页一定要有唯一性的排序,你的排序可能是排序字段不够,加上你的字段排序之后再加一个ID字段排序。
比如order by t.name, t.id;

2011年7月28日 09:10

相关推荐

Global site tag (gtag.js) - Google Analytics