2008-05-05
一个createQuery(hql)问题
在用Hibernate进行分页时,在进入前5页都很正常。在查询第6页的时候就像死机了一样。怎么也不动。
代码如下:
分页查询
在第六次查询时,在这里不动了。后台也没有错误出现。
在执行分页查询的时候出错的。
代码如下:
int totalRows = ((Integer)this.getSession().createQuery("select count(*) " + hql).uniqueResult()).intValue(); //查询总页数
PaginationSupport page = new PaginationSupport(arealist, totalRows, currentPage); //实现分页
arealist.add(this.getListForPage(hql, (currentPage-1)*page.getPageSize(), page.getPageSize())); //分页查询
分页查询
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;
}
在第六次查询时,在这里不动了。后台也没有错误出现。
arealist.add(this.getListForPage(hql, (currentPage-1)*page.getPageSize(), page.getPageSize()));
在执行分页查询的时候出错的。
评论
shanglo
2008-05-06
不用 手动 关闭 session吧?
用 spring管理后, 怎么样拿到的 session 都不用 管吧?
用 spring管理后, 怎么样拿到的 session 都不用 管吧?
kane82
2008-05-06
是这样的,在Hibernate中
获取session的两种方式:this.getSession();和this.getHibernateTemplate().getSessionFactory().openSession();
获取session以后再createQuery操作就一样了。但是这种做法,是需要自己去手动关闭session的。所以你需要配置openSessioninview
我加了这个配置,问题就好了。原文在
http://xrb2008.javaeye.com/blog/152836
获取session的两种方式:this.getSession();和this.getHibernateTemplate().getSessionFactory().openSession();
获取session以后再createQuery操作就一样了。但是这种做法,是需要自己去手动关闭session的。所以你需要配置openSessioninview
我加了这个配置,问题就好了。原文在
http://xrb2008.javaeye.com/blog/152836
- 浏览: 499 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最新评论
-
一个createQuery(hql)问题
不用 手动 关闭 session吧? 用 spring管理后, 怎么样拿到的 s ...
-- by shanglo -
一个createQuery(hql)问题
是这样的,在Hibernate中 获取session的两种方式:this.get ...
-- by kane82 -
00000
运行后报错: javax.servlet.ServletException: E ...
-- by kane82 -
难道上海找份工作就这么难 ...
简历能看出个什么名堂.
-- by mylifestyle1225 -
难道上海找份工作就这么难 ...
这个世界基本搞不清楚了,找工作的找不到,招聘的说招不到人
-- by cjmcn-sh






评论排行榜