• 集成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;     
        }    
  • 相关阅读:
    什么是动态链接库
    <<TCP/IP高效编程>>读书笔记
    C++ 函数
    我的vim配置
    FastReport4.6程序员手册_翻译
    DUnit研究初步
    ADO BUG之'无法为更新定位行....' 解决之道
    极限编程的集成测试工具Dunit
    总结
    项目管理检查清单项目启动
  • 原文地址:https://www.cnblogs.com/yw-ah/p/5811337.html
Copyright © 2020-2023  润新知