【问题标题】:Why is HIbernateTransactionManager required in Spring?为什么在 Spring 中需要 HIbernateTransactionManager?
【发布时间】:2014-03-04 17:15:46
【问题描述】:

当我们可以通过会话在hibernate中进行事务时,HibernateTransactionManager再次集成Spring-hibernate需要什么?

它的作用是什么?

为什么没有这个我们就不能直接进行交易?

【问题讨论】:

标签: spring hibernate spring-mvc transactionmanager


【解决方案1】:

借助 AOP,Spring 允许使用声明式事务,就像您可以使用 EJB 一样。

而不是做

public void doSomething() {
    Session sess = factory.openSession();
    Transaction tx = null;
    try {
        tx = sess.beginTransaction();

        // do some work
        ...

        tx.commit();
    }
    catch (RuntimeException e) {
        if (tx != null) tx.rollback();
        throw e; // or display error message
    }
    finally {
        sess.close();
    }
}

你只是这样做

@Transactional
public void doSomething() {
    // do some work
}

由于 Spring 为您处理事务逻辑,因此更具可读性、可维护性、更少麻烦和更安全。这就是需要事务管理器的原因:告诉 Spring 它应该如何为您处理事务。因为它也可以使用相同的声明性模型,但使用 JPA 事务或 JTA 事务。

这在Spring documentation中有很好的描述。

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 2021-12-22
    相关资源
    最近更新 更多