原文链接:Hibernate分页功能数据重复问题
oracle中的分页机制就是通过rownum函数来实现的,rownum顺序号的生成是排序后生成的,例如:
select * from web_user where rownum > 0 and rownum <= 10 order by name;
这个排序中使用了name字段作为排序,但是数据不能保证name是唯一的,所以就会出现重复数据。当然如果将name设定为唯一索引那么就可以了。
所以如果oracle中需要分页排序的话,那么就要使用唯一键排序,当然如果使用多条件联合排序,那么要确保其中存在唯一键。