Hibernate分页查询oracle数据库显示结果集与实际查询不匹配

在使用Hibernate分页查询功能之后,会发现查询出来的结果集不是我想象的,有时记录顺序会变动,有时有的记录会查不出来,于时只好把hibernate的源码拿来看看,结果还真发现了问题,以下是我的修改方案:

  //if (hasOffset) {
    pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");
  //}
  //else {
  // pagingSelect.append("select * from ( ");
  //}
  pagingSelect.append(sql);
  if (hasOffset) {
    pagingSelect.append(" ) row_ ) where rownum_ <= ? and rownum_ > ?");
  }
  else {
    pagingSelect.append(" ) row_ ) where rownum_ <= ?");
   //pagingSelect.append(" ) where rownum <= ?");
  }

这是hibernate对oracle方言中的代码,我想大家都能看的懂!要修改的类文件是:

Oracle9iDialect.java

Oracle9Dialect.java

Oracle8iDialect.java

Oracle8Dialect.java

OracleDialect.java

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值