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