问题描述:使用JPA的函数进行分页显示。一共11条记录,一页显示10条记录。第一页显示正常,第二页显示最后一条数据出现异常。第二页显示出来的结果是第10条记录,而第11条记录竟然消失了。。。。。。。OMG~~~
问题分析:经过代码排查、断点跟踪等各种分析方法,终于发现了,是因为排序使用的order by出现了问题。我在order by 后面加了 字段a和字段b。问题就在于第9、10、11条记录的a和b字段都是一样的。经过google,发现许多人都遇到了我这个问题。这是一个典型的order by字段值不唯一造成分页记录混乱。由于order by字段值出现了多条重复的值,造成分页显示的悲剧。
详细分析请见:http://qyongkang.iteye.com/blog/865609。
解决办法:我保留了字段a,使用字段c来替换字段b,因为字段c是可以保证唯一性的。