前言
使用hibernate的分页功能时,发现第一页和第二页的数据出现重复现象
原因
hibernate 分页查询 的第一页 和第二页之后的sql 不一样
第一页时是: select * from (myquery) where rownum<?
第二页及之后页时是:
select * from (select row_.*,rownum rownum_ from (myquery) row_) where rownum_<=? and rownum_>?
由于sql 不相同 可能造成数据库执行计划不同,然后导致数据库记录第一页 和第二页有重复记录
解决
order by 唯一键排序
探讨了使用Hibernate进行分页查询时,因SQL执行计划不同导致第一页和第二页数据重复的现象,分析其背后的原因,并提出通过唯一键排序来解决该问题。
1071

被折叠的 条评论
为什么被折叠?



