【发布时间】:2014-03-04 17:15:46
【问题描述】:
当我们可以通过会话在hibernate中进行事务时,HibernateTransactionManager再次集成Spring-hibernate需要什么?
它的作用是什么?
为什么没有这个我们就不能直接进行交易?
【问题讨论】:
标签: spring hibernate spring-mvc transactionmanager
当我们可以通过会话在hibernate中进行事务时,HibernateTransactionManager再次集成Spring-hibernate需要什么?
它的作用是什么?
为什么没有这个我们就不能直接进行交易?
【问题讨论】:
标签: spring hibernate spring-mvc transactionmanager
借助 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中有很好的描述。
【讨论】: