文档章节

Hibernate分页数据重复显示

4
 413953949
发布于 2015/06/17 14:08
字数 148
阅读 14
收藏 0

问题:

hibernate分页查询是第一页生成的sql与第二页sql不同,导致sql执行策略不一致

解决:

1、每个分页的sql添加 order by

2、重写 hibernate dialect,重写方法 getLimitString

@Override

public String getLimitString(String sql, boolean hasOffset) {

sql = sql.trim();

boolean isForUpdate = false;

if (sql.toLowerCase().endsWith(" for update")) {

sql = sql.substring(0, sql.length() - 11);

isForUpdate = true;

}


StringBuffer pagingSelect = new StringBuffer(sql.length() + 100);

if (hasOffset) {

pagingSelect

.append("select * from ( select row_.*, rownum rownum_ from ( ");

} else {

pagingSelect

.append("select * from ( select row_.*, rownum rownum_ from ( ");

}

pagingSelect.append(sql);

if (hasOffset) {

pagingSelect.append(" ) row_ ) where rownum_ <= ? and rownum_ > ?");

} else {

pagingSelect.append(" ) row_ ) where rownum_ <= ? and rownum_ > 0");

}

if (isForUpdate) {

pagingSelect.append(" for update");

}

return pagingSelect.toString();

}


© 著作权归作者所有

共有 人打赏支持
4
粉丝 0
博文 3
码字总数 531
作品 0
襄阳
学习hibernate(八) -- HQL查询语句

HQL语句 HQL(Hibernate Query Language)提供更加丰富灵活、更为强大的查询能力。 可设定WHERE 可进行投影查询 可分页 可分组 可做连接查询 有聚合函数 支持子查询 可动态绑定参数 先看一个H...

杰克鹏仔
2016/04/11
103
0
数据分页资料汇总

1.数据库分页Java实现(http://www.cnblogs.com/ITtangtang/archive/2012/04/21/2462385.html) 2.Java分页代码的实现(http://www.open-open.com/lib/view/open1346772322162.html) 3. java分页......

IT追寻者
2016/08/13
41
0
hibernate中带查询条件的分页

所谓分页,从数据库中分,则是封装一个分页类。利用分页对象进行分页。 但,分页往往带查询条件。 分页类的三个重要数据:【当前页码数】,【数据库中的总记录数】,【每页显示的数据的条数】...

无信不立
2014/07/01
0
0
web项目脚手架--Rapid Framework

基于spring,struts(struts2),hibernate的web项目脚手架 一个类似 ruby on rails 的java web快速开发脚手架,本着不重复发明轮子的原则,框架只是将零散的struts(struts2)+spring+hibernate各个...

匿名
2009/04/28
21.9K
4
hibernate Criteria 查询分页问题

oracle数据库表中有9条数据,分页查询,每页4条。 但是使用hibernate Criteria查询到第二页显示5条数据,查询分页代码为criteria.setFirstResult(4),criteria.setMaxResults(8),麻烦问一下大...

写给木木夕的话
2016/06/03
168
5

没有更多内容

加载失败,请刷新页面

加载更多

马太效应

马太效应

yizhichao
14分钟前
0
0
69.for while循环 continue break exit

20.10 for循环 20.11/20.12 while循环 20.13 break跳出循环 20.14 continue结束本次循环 20.15 exit退出整个脚本 扩展 select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.10......

王鑫linux
23分钟前
0
0
完整的软件开发流程是怎样的

在it圈混迹了这么久,做过各种各样的工作。但是我确一直不知道一个软件从无到有到底是怎么开发的。于是就产生了强烈的好奇心:一个软件产品的结果为什么是这样?为什么开发的速度不能再快一点...

TreasureWe
29分钟前
0
0
深度学习与图像处理之:人像背景虚化

简单实现思路: 对图像内容进行分割,提取人像 对图像背景进行模糊化处理 将人像和背景重新合成 在这里,使用DeepLabV3模型对图像内容进行分割并提取人像,实现的代码如下: import numpy a...

IOTService
31分钟前
0
0
20180918上课截图

小丑鱼00
39分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部