springside学习中遇到的问题

阅读更多
本想发在新手版上,又怕没人回答,麻烦指点后再帮我投新手贴,谢谢。
学习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的官方文档(学习要塌实 ),不过到现在还没有兄弟秀一个好的解决方法出来哦

你可能感兴趣的:(SQL,Hibernate,Oracle,MySQL,Informix)