实现分页操作的代码:
public List<Cost> findPage(final int page ,final int pageSize){
//利用HibernateTemplate.execute()方法,以回调方式使用,不需要关闭session
List<Cost> costList = (List)getHibernateTemplate().execute(
new HibernateCallback(){
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
// TODO Auto-generated method stub
//使用session对象
String hql= "from Cost";
Query query = session.createQuery(hql);
int begin = (page-1)*pageSize;
query.setFirstResult(begin);
query.setMaxResults(pageSize);
return query.list();
}}
);
return costList;
}
不回调的话拿不到session,而spring里的hibernateTemplate不支持setFirstResult,setMaxResults 2个hibernate的分页操作方法。
github上有我更多的笔记:Raray-chuan (兮川) · GitHub,欢迎stars与following,如果有问题可以在issue中向我咨询
关注我的公众号,获取更多关于后端、大数据的知识