hibernate分页问题
我知道原理使用hibernateTemplate的HibernateCallback(),或者return(List<Friends>)hibernateTemplate...
我知道原理使用hibernateTemplate的HibernateCallback(),或者return (List<Friends>)hibernateTemplate.find("from Friends f order by f.fDate desc limit 0,"+n);还有别的,我想了解的是,这样的实现怎么判断是最后一页了,如果一直点下一页最后返回来的list是长度为0,是不是在dao层加个方法来返回他的总记录呢?或者有别的处理,项目中怎么处理啊,求大虾的回答啊,,不好意思,最近问题多,把分都问完了,万分谢谢
展开
2个回答
展开全部
一般分页都会有一个count算出总条数的方法
public List<T> findPage(String hql, int page, int rows, List<Object> param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
q.setParameter(i, param.get(i));
}
}
return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list();
}
public Long count(String hql, List<Object> param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
q.setParameter(i, param.get(i));
}
}
return (Long) q.uniqueResult();
}
public List<T> findPage(String hql, int page, int rows, List<Object> param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
q.setParameter(i, param.get(i));
}
}
return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list();
}
public Long count(String hql, List<Object> param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.size() > 0) {
for (int i = 0; i < param.size(); i++) {
q.setParameter(i, param.get(i));
}
}
return (Long) q.uniqueResult();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询