hibernate分页查询

   在使用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);

你可能感兴趣的:(easyui,分页)