【问题标题】:Hibernate transaction management without Spring没有 Spring 的 Hibernate 事务管理
【发布时间】:2012-05-06 22:08:39
【问题描述】:

我想在没有 Spring 的情况下使用 Hibernate,我以这种方式设置 Hiberante:

<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.current_session_context_class">thread</property>

但现在我得到了这个异常:

org.hibernate.HibernateException: get is not valid without active transaction

有什么方法可以让 Hibernate 像 Spring 一样自动管理事务?我必须手动打开和关闭交易吗?

谢谢。

【问题讨论】:

    标签: hibernate jdbc transactions


    【解决方案1】:

    好吧,至少不是根据reference guide。在托管和 JTA 环境中使用事务有多种选择,但您必须在 Transaction 位中编写代码

    【讨论】:

    • 我希望每个 http 请求都有一个会话,我应该在 Tomcat 中有一个过滤器来打开一个关闭会话?我希望有一些东西可以自动执行此操作...谢谢,
    • 我想到了一个可以打开和关闭的过滤器......这对你来说是个好选择吗?
    • 是的,这是参考指南中推荐的方法之一。 AOP 是另一种方式。 sessionFactory.getCurrentSession() 是 Hibernate 3 中的新增功能,可以非常方便地在持久层获取当前事务的会话。
    猜你喜欢
    • 2012-10-16
    • 2016-12-02
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 2011-08-05
    相关资源
    最近更新 更多