hibernate三种分页对性能有影响吗?
一法:
String sql = "select * from GoodsMessage g where g.gType="+"'"+gtype+"'"+" limit "+((curPage-1)*pageSize)+","+pageSize+"";
list = (List<GoodsMessage>)sessionFactory.openSession().createSQLQuery(sql).addEntity(GoodsMessage.class).list();
二法:
String sql = "from GoodsMessage g where g.gType="+"'"+gtype+"'";
list = (List<GoodsMessage>)sessionFactory.openSession().createQuery(sql).setFirstResult((curPage-1)*pageSize).setMaxResults(pageSize).list();
三法:
final String sql = "from GoodsMessage g where g.gType="+"'"+gtype+"'";
return (List<GoodsMessage>)this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
Query query = session.createQuery(sql);
int beignRow = (curPage-1)*pageSize;
query.setFirstResult(beignRow);
query.setMaxResults(pageSize);
return query.list();
}
});
为什么之前用前两种方法试,每次都是不报错,但每次启动tomcat之后只能进行五次查询,然后就页面缓冲不过来了,需要重启tomcat,然后又只能进行五次查询,感觉像是内存泄漏,但加大内存后,还是之前那样。用了第三种方法后,一切正常了。求大侠指点一下,这是什么原因? javaEE?hibernate?分页
[解决办法]
你的问题出现在sessionFactory.openSession()这里。
[解决办法]
hibernate 分页推荐使用第三种方法
[解决办法]