2 qinkaiyuan94 qinkaiyuan94 于 2016.05.11 18:33 提问

hibernate 的 DetachedCriteria 如何进行分页?

如果使用getCurrentSession和criteria可以这样进行分页,限制结果集;

Session session=getHibernateTemplate().getSessionFactory().getCurrentSession();
Criteria criteria=session.createCriteria(User.class);
List list=criteria.setFirstResult(10).setMaxResults(59).list();

可是如果使用DetachedCriteria 的话DetachedCriteria 没有setFirstResult和setMaxResults方法,应该如何进行分页?

3个回答

Royal_lr
Royal_lr   Ds   Rxr 2016.05.11 18:45
已采纳

这样挺好的,怎么麻烦了,设置一下开始的和最大就行了

qinkaiyuan94
qinkaiyuan94 回复Royal_lr: 我感觉用回调还不如用getcurrentsession创建criteria,不用离线的了
一年多之前 回复
qinkaiyuan94
qinkaiyuan94   2016.05.11 18:34

public List findByPage(final DetachedCriteria detachedCriteria,final int currentPage, final int maxRow) {
try
{

return getHibernateTemplate().executeFind(new HibernateCallback()
{
public Object doInHibernate(Session session) throws SQLException, HibernateException {
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
criteria.setFirstResult((currentPage - 1) * maxRow);
criteria.setMaxResults(maxRow);
return criteria.list();
}
});
}
catch (RuntimeException re)
{

throw re;

}

}

    这是我从网上找到的办法,但是感觉好麻烦啊,只能这样么?
CSDNXIAOD
CSDNXIAOD   2016.05.11 18:42

利用hibernate的DetachedCriteria进行分页
利用hibernate的DetachedCriteria进行分页
使用hibernate进行分页
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!