现在遇到一个ssh、oracle应用分页重复的问题,其中的一个列表共2页,第二页看到的是第一页中已经出现过的记录。如下:
第一页(共20条):
1-1
1-2
1-3
1-4
1-5
1-6
1-7
1-8
......
第二页(共6条),其实此处应该显示另外的6条才正确:
1-6
1-5
1-4
1-3
1-2
1-1

诡异的是,我用相同版本的代码(jsp/java部分相同)在本机连接生产库测试发现无此问题。问题可能出在哪里?PS:
1、 生产上是前几天更新的最新版本程序(最近n次升级都没对分页、排序做相关修改)
2、 网上说order by中字段非唯一会有此问题,但本案例若有问题本机也该有问题呀?
3、 spring、hibernate是否有针对排序什么的设置(本机、生产机的配置可能不同,不知道那里有相关排序配置没有)?
4、 生产系统升级也清空jboss了,并重启了该应用。

解决方案 »

  1.   

    Hibernate输出SQL语句是正常的:select
            * 
        from
            (
            select 
                row_.*,
                rownum rownum_ 
            from
                ( select
                    this_.*
                from
                    a this_,
                    b b_,
                    c c_ 
                where
                    qa.-=b.-
                    ......) row_ ) 
                    
            where
                rownum_ <= 6
                and rownum_ > =1     
      

  2.   

    hibernate的不知道,一般我都这样套用select * from ( select a.*,ROWNUM rn from ( sql语句 ) a where ROWNUM <= 6 ) where rn >= 1
      

  3.   

    where
      rownum_ <= 6
      and rownum_ > =1 ????
    order by 在哪里?