【问题标题】:can a session factory be used detached from a spring transaction会话工厂可以与 Spring 事务分离使用吗
【发布时间】:2011-12-16 11:16:37
【问题描述】:

作为这个问题的一部分:

spring transactions in a spawned off thread

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

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

【问题讨论】:

标签: hibernate spring


【解决方案1】:

如果你不想使用事务管理器,你可以调用下面的方法来创建会话。

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

Session session = sessionFactory.openSession();

这在here有更详细的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多