今天
Query q=this.getSession().createQuery(queryString);
q.setFirstResult(start);
q.setMaxResults(end);
List<News> list=q.list();
return list;
直接请求8次就不能响应数据了
最后解决办法是
Session session = this.getSession();Query q=session.createQuery(queryString);
q.setFirstResult(start);
q.setMaxResults(end);
List<News> list=q.list();
releaseSession(session);
return list;
问题解说:
return getHibernateTemplate().find(queryString);
中spring 已经帮我们关闭了 session
用上面方法出现这种问题
我当时吧session已经关闭
this.getSession().close();
但是还是无极于是
现在想通了当时没写正确
应该这样
Session session = this.getSession();
q.setFirstResult(start);
q.setMaxResults(end);
List<News> list=q.list();
session.close();
这样也可以解决问题
其实Spring的Session总是与某个线程绑定的,而这个线程往往就是承载Servlet或Jsp的那个线程,也就是说,它的生命周期scope是request的。在上面的例子中,我们利用getSession强制获得了Hibernate的 Session,这个Session可能是当前事务中之前使用过的,或者可能是一个新的,并不在当前事务中,Spring只对当前事务中的Session 进行关闭
releaseSession关闭由这个DAO的SessionFactory创建的Hibernate Session