遇到一个坑,搞了不少时间,记录一下。。
不多说 贴图
这里session用了sessionFactory.getCurrentSession(),然后导致异步线程session报错,暂时也没找到原因,据说hibernate4以后的一个坑
然后解决方法,使用openSession
Session session = this.sessionFactory.openSession();
TransactionSynchronizationManager.bindResource(this.sessionFactory, session);
try {
doSomething()
} finally {
TransactionSynchronizationManager.unbindResourceIfPossible(this.sessionFactory);
if (session != null) {
session.close();
}
}
OK 完美解决
本文记录了一个关于Hibernate在异步线程中使用getCurrentSession()导致的问题及解决方案。问题表现为使用getCurrentSession()时,在异步线程中会引发Session错误。解决方法是改用openSession()并结合TransactionSynchronizationManager进行资源绑定与解绑。

401

被折叠的 条评论
为什么被折叠?



