SSH_Hibernate分页问题 :
在做分页的时候遇到一个BUG, 点下一页总记录数查询不到 ,之前是先查询 该页上的数据, 然后在查询总记录数,发现点下一页之后总记录一直为0,所有总页数也为0,
将查询总记录数 放在查询数据之前就解决了:
PageBean<Customer> page = new PageBean<Customer>();
//设置当前页
page.setPageCode(pageCode);
//设置每页记录数
page.setPageSize(pageSize);
//得到所有记录
criteria.setProjection(Projections.rowCount());
List<Number> counts = (List<Number>)this.getHibernateTemplate().findByCriteria(criteria);
if (counts != null && counts.size() != 0)
page.setTotalCount(counts.get(0).intValue());
//把聚合条件清除
criteria.setProjection(null);
/*
* 注意查询总记录数(即聚合函数的添加) 和 得到总记录数 两个的顺序, 要先加聚合函数,再去掉之后再查询 总记录数
* 查询总记录数必须在分页之前 否则查询不到总记录数
*/
//查询记录 起始记录= (当前页-1)*pageSize
List<Customer> list = (List<Customer>)this.getHibernateTemplate().findByCriteria(criteria, (pageCode-1)*pageSize, pageSize);
page.setBeanList(list);
return page;
不知道为啥。。