会话工厂是否可以与spring事务分离使用

时间:2011-10-27 12:11:03

标签: hibernate spring

作为这个问题的一部分:

spring transactions in a spawned off thread

我想到的一个解决方案是将我的会话工厂作为普通bean抓取并在spring事务之外使用它。然后在我的新线程中手动处理我的交易。

我的问题,这可能吗?到目前为止,它不允许我在春季交易之外对会话工厂做任何事情。如果要分离它,我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您不想使用事务管理器,可以调用以下内容来创建会话。

当您使用事务管理器时,并不意味着在提交事务时关闭所有Hibernate会话!只有使用sf.getCurrentSession()获得的会话才会自动刷新并关闭。如果你决定使用sf.openSession()并自己管理Session,你必须flush()和close()它。因此,没有任何“当前”会话的不太方便的选择是:

Session session = sessionFactory.openSession();

更详细地解释了这一点here