您的位置:首页 > 其它

HibernateTemplate实现分页

2015-08-02 16:56 435 查看
Spring 整合 Hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展hibernateTemplate的功能实现分页

 

[java] view
plaincopyprint?

/**   

* 使用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.set
ca5c
FirstResult(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;     

    }    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: