RT,当我要按日期、按客户、按渠道分组后统计访问总数,然后再对这个总数分页,用Critetria的分页就有问题了,Projections.rowcount()方法出现问题,怎么解决

解决方案 »

  1.   

    这个很简单的 用HQL语句啊
    /**查询所有的事件信息
             * @param 当前页数 ,每页显示的个数
     * @return 泛型集合
     **/
    public List<PtAffair> allAffair(int startNo, int endNo) {
    return this.getpage("写入你需要HQL语句 就可以了", startNo, endNo);
    }  
    /**获得分页的页数
     *@param HQL语句 ,需要每页显示的个数
     * @return 页数
     **/
    public int getpagecount(String hql, int pageSize) {
    int size = super.getHibernateTemplate().find(hql).size();
    if (size % pageSize == 0) {
    return size / pageSize;
    } else {
    return size / pageSize + 1;
    }
    }

    @SuppressWarnings("unchecked")
    /**分页方法
     * @param 当前页数 ,每页显示的个数
     * @return 泛型集合
     **/
    public List<PtAffair> getpage(final String hql, final int startNo,
    final int endNo) {
    List list = super.getHibernateTemplate().executeFind(
    new HibernateCallback() {
    public Object doInHibernate(Session session)
    throws HibernateException, SQLException {
    Query query = session.createQuery(hql);
    query.setFirstResult((startNo - 1) * endNo);
    query.setMaxResults(endNo);
    List<PtAffair> list = query.list();
    return list;
    }
    });
    return list;
    }