您的位置:首页 > 其它

getCurrentSession 出现No hibernate bound to the thread

2017-10-31 18:13 399 查看

1、问题情景

在Dao里调用getCurrentSession()

代码如下

@Override
public WebSite findWebSite() {
Session session =  this.getHibernateTemplate().getSessionFactory().getCurrentSession();
Query query  = session.createQuery("from WebSite");
WebSite webSite = (WebSite)query.uniqueResult();
return webSite;
}


此dao不在spring事务上下文中

出现一下异常

No hibernate bound to the thread


2、处理过程

首先利用this.getSession()获取的话,不会出现此异常。

很明显是getSession()与getCurrentSession()有区别

getSession()需要手动关闭session。而getCurrentSession()绑定了线程,依靠**事务**提交或回滚进行自动关闭session


getCurrentSession()是依靠事务提交或回滚进行自动关闭session的。

这句话解释了问题所在。自然就解决了出现No hibernate bound to the thread异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐