gpt4 book ai didi

spring - 为什么 Spring 需要 HIbernateTransactionManager?

转载 作者:行者123 更新时间:2023-12-04 10:18:25 26 4
gpt4 key购买 nike

当我们可以通过session在hibernate中做事务时,需要什么HibernateTransactionManager再次在 Spring-hibernate一体化?

它的作用是什么?

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

最佳答案

由于 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 中有很好的描述。 .

关于spring - 为什么 Spring 需要 HIbernateTransactionManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21625282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com