hibernate 分页查询??

写了一个hibernate分页查询,设置了:
query.setFirstResult(first);
query.setMaxResults(10);
第一页返回的集合是10条,到后面每翻一页,返回的list集合都是累加10条记录。但是页面上显示的又是正确的,所以很不解????
下面是jsp上显示的代码:

${sks.cmdId}
${sks.objType}
${sks.objName}
${sks.cmdFile}
${sks.createDate}
/c:forEach

pengyayun
pengyayun 非常感谢你们的回答
7 年多之前 回复
pengyayun
pengyayun 从上面的我log我看出来了,是我传值错了,query.setMaxResults(size);这个传值错了。
7 年多之前 回复

2个回答

String hql = "from XXXXXXXXXXXX";
Query query = session.createQuery(hql);
query.setCacheable(true);
List result = query.setFirstResult(start).setMaxResults(limit).list();

hql语句自己写;
传值:start,limit

方法没错吧。可能是你传值错了。DEBUG一下。

query.setFirstResult(first); :是首记录位置,一般计算规则是: (页码-1)* 每页记录数
query.setMaxResults(10);

为什么页面能正常显示呢》
<c:forEach begin="0" end="${pagingUtil.pageSize-1}"

你这里 begin表示循环索引从0开始,end表示结束索引(pagingUtil.pageSize-1 = 9)

即只循环集合的0-9

jinnianshilongnian
jinnianshilongnian
7 年多之前 回复
pengyayun
pengyayun 我传值错了 query.setFirstResult(first); 这个正确 query.setMaxResults(10); 而这个会随着翻页越来越大,所以翻页正常,记录数递增。
7 年多之前 回复
jinnianshilongnian
jinnianshilongnian 恩,你看看 是不是排序了, 比如倒序 或升序; 这样取前10条总是最新的; 你可以打印前两页看看是不是这样情况
7 年多之前 回复
pengyayun
pengyayun 我说页面显示的是正确的意思是:页面的翻页功能正常,按你这么说,不管怎样都会只取前10条记录,而我的翻页是正常的,会根据翻页显示不同记录的。
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问