解决hibernate中session的问题
2011-08-11 18:30
302 查看
今天
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
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
相关文章推荐
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session懒加载问题
- 解决spring+springMVC+Hibernate+spring-data-jpa懒加载No session问题
- 解决Hibernate的Session的关闭与开启问题
- Hibernate中的session和load延迟载入矛盾问题,怎样解决?
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session懒载入问题
- org.hibernate.Session问题解决
- 解决Could not open Hibernate Session for transaction问题
- failed to lazily initialize a collection of role: no session or session was closed (Hibernate) 解决方法(延迟加载问题)
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- 使用clone解决hibernate+spring集成中的延迟加载问题及分析(no session or session was closed)
- 使用clone解决hibernate+spring集成中的延迟加载问题及分析(no session or session was closed)
- OpenSessionInViewFilter解决Hibernate延时加载问题
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- 解决No Hibernate Session bound to thread, and configuration does not allow create tansactional的问题
- 解决No Hibernate Session bound to thread, and configuration does not allow create tansactional的问题
- 解决hibernate报错:no-session的问题
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session问题
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- 解决Hibernate的session.save/update/delete操作无效问题(事务管理)
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题