本想发在新手版上,又怕没人回答,麻烦指点后再帮我投新手贴,谢谢。
学习springside时候遇到个问题,问题如下:
HibernateGenericDao中
[code]/**
* 分页查询函数,使用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);
}[/code]
中为什么这句
[code]String countQueryString = " select count (*) " + removeSelect(removeOrders(hql)); [/code]
需要先removeSelect?我们的sql不是可以这样的吗
[code]select count (*) from (select ...)[/code]
[color=red]后记:hibernate的设计原理还没看透,没有好好学习一下hibernate的官方文档(学习要塌实 :D ),不过到现在还没有兄弟秀一个好的解决方法出来哦[/color]
学习springside时候遇到个问题,问题如下:
HibernateGenericDao中
[code]/**
* 分页查询函数,使用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);
}[/code]
中为什么这句
[code]String countQueryString = " select count (*) " + removeSelect(removeOrders(hql)); [/code]
需要先removeSelect?我们的sql不是可以这样的吗
[code]select count (*) from (select ...)[/code]
[color=red]后记:hibernate的设计原理还没看透,没有好好学习一下hibernate的官方文档(学习要塌实 :D ),不过到现在还没有兄弟秀一个好的解决方法出来哦[/color]