如果使用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方法,应该如何进行分页?
这样挺好的,怎么麻烦了,设置一下开始的和最大就行了
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;
}
}
这是我从网上找到的办法,但是感觉好麻烦啊,只能这样么?