在使用easyui等前端框架时,进行分页时要得到当前数据和总数,使用Hibernate会进行两次数据查询时。利用List集合的subList方法截取要显示的数据,则只要进行一次查询。
方法一:
dataGridModel.setRows(list);
dataGridModel.setTotal((long)(query.list().size())); //第一次查询
query.setFirstResult((page.getPage()-1)*page.getRows());
query.setMaxResults(page.getRows());
dataGridModel.setRows(query.list()); //第二次查询
方法二:
List<Object> list = query.list(); //第一次查询
Integer totalCount = list.size();
dataGridModel.setTotal((long)totalCount);
Integer fromIndex = (page.getPage()-1)*page.getRows();
Integer toIndex = fromIndex + page.getRows();
if(fromIndex+page.getRows()>totalCount){
list=list.subList(fromIndex,totalCount);
}else{
list=list.subList(fromIndex,toIndex);
}
dataGridModel.setRows(list);
转载于:https://my.oschina.net/atarm/blog/210515