|
本想发在新手版上,又怕没人回答,麻烦指点后再帮我投新手贴,谢谢。
学习springside时候遇到个问题,问题如下:
HibernateGenericDao中
/** * 分页查询函数,使用hql. * * @param pageNo 页号,从0开始. */ public Page pagedQuery(String hql, int pageNo, int pageSize, Object... values) { Assert.hasText(hql); //Count查询 String countQueryString = " select count (*) " + removeSelect(removeOrders(hql)); List countlist = getHibernateTemplate().find(countQueryString, values); long totalCount = (Long) countlist.get(0);if (totalCount < 1) return new Page(); //实际查询返回分页对象 int startIndex = Page.getStartOfPage(pageNo, pageSize); Query query = getQuery(hql, values); List list = query.setFirstResult(startIndex).setMaxResults(pageSize).list();return new Page(startIndex, totalCount, pageSize, list); }
中为什么这句
String countQueryString = " select count (*) " + removeSelect(removeOrders(hql));
需要先removeSelect?我们的sql不是可以这样的吗
select count (*) from (select ...)
后记:hibernate的设计原理还没看透,没有好好学习一下hibernate的官方文档(学习要塌实 ),不过到现在还没有兄弟秀一个好的解决方法出来哦 |
|