作为这个问题的一部分:
spring transactions in a spawned off thread
我想到的一个解决方案是将我的会话工厂作为普通bean抓取并在spring事务之外使用它。然后在我的新线程中手动处理我的交易。
我的问题,这可能吗?到目前为止,它不允许我在春季交易之外对会话工厂做任何事情。如果要分离它,我该怎么做?
答案 0 :(得分:0)
如果您不想使用事务管理器,可以调用以下内容来创建会话。
当您使用事务管理器时,并不意味着在提交事务时关闭所有Hibernate会话!只有使用sf.getCurrentSession()获得的会话才会自动刷新并关闭。如果你决定使用sf.openSession()并自己管理Session,你必须flush()和close()它。因此,没有任何“当前”会话的不太方便的选择是:
Session session = sessionFactory.openSession();
更详细地解释了这一点here。