搜索
首页 电脑/网络 操作系统/系统故障

hibernate查询分页显示时数据重复显示怎样才能避免啊?

hibernate查询分页显示时数据重复显示怎样才能避免啊?

全部回答

2013-10-22

124 0
建议你下载一个显示助手 点击好评,幸福快乐永远!!!

2013-10-21

150 0
    做音视频网站审核的时候,发现分页出现了重复记录。原以为是自己程序出了问题,可仔细检查了程序之后,并没有发现有什么不对的地方,于是上网查了一下,原来是oracle 分页机制的问题,在oracle中,分页是通过rownum函数来实现的, rownum顺序号的生成是排序后生成的,例如下面这条sql: select * from user where rownum 10 order by userName 按照我们正常的理解,这条sql查询的是user表中按照userName升序后取其10~20条记录, 其实不然,oracle是排序后才生成rownum,理想情况下如userName在user表的值是唯一 的或者userName在数据库中被建了唯一索引,结果是正确的,但是如果userName的值存在 大量重复记录或者为空,就会出现问题重复记录的情况。
    正确的sql应该这样写: select * from (select * from (select * from user order by userName) where rownum =10 但是这并不能从根本上解决问题,为了避免这种情况,建议慎用oracle的排序功能, 如果需要使用排序,一定要选择那些建有唯一索引的字段。
    当然有时候我们可能需要对 那些不是唯一索引的字段进行排序,这些字段的值可能大量重复也可能为空,怎么办, 这时候可以采用联合字段排序,也就是排序字段中包含一个主键或不会重复的字段。
  

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
操作系统/系统故障
硬件
电脑装机
程序设计
互联网
笔记本电脑
反病毒
百度
软件
操作系统/系统故障
操作系统/系统故障
举报
举报原因(必选):
取消确定举报