集成Spring后HibernateTemplate实现分页
Posted 一步一个脚印,坚持
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集成Spring后HibernateTemplate实现分页相关的知识,希望对你有一定的参考价值。
spring 整合 hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展hibernateTemplate的功能实现分页
/** * 使用hql 语句进行操作 * @param hql * @param offset * @param length * @return List */ public List getListForPage(final String hql, final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); query.setFirstResult(offset); query.setMaxResults(length); List list = query.list(); return list; } }); return list; }/** * 使用criterion进行操作 * @param arg * @param criterions * @param offset * @param length * @return List */ protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(arg); //循环遍历添加约束条件 for (int i = 0; i < criterions.length; i++) { criteria.add(criterions[i]); } criteria.setFirstResult(offset); criteria.setMaxResults(length); return criteria.list(); } }); return list; } // 获得集合的总数(聚合查询) public Integer getSaleChanceListCount() { final String hql = "select count(*) from SaleChanceInfo si"; Integer result = null; result = (Integer)getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session arg0) throws HibernateException, SQLException { Query query = arg0.createQuery(hql); return query.uniqueResult(); } }); return result; }
以上是关于集成Spring后HibernateTemplate实现分页的主要内容,如果未能解决你的问题,请参考以下文章
集成Spring后HibernateTemplate实现分页
Angular(SPA) 前端和 Spring Boot 后端的 SAML 2.0 集成
Spring 批处理作业应仅在 Spring 集成文件轮询器轮询文件后执行一次