要使用什么事务管理器? (JPA,春天)

时间:2010-10-07 10:03:17

标签: java spring jpa transactions

我正在开发一个基于JPA + Hibernate,Spring和Wicket的Web应用程序。我想知道在我的代码中实现事务的最佳方法是什么?我应该使用什么交易经理?应该是org.springframework.orm.jpa.JpaTransactionManager,还是org.springframework.jdbc.datasource.DataSourceTransactionManager还是其他什么?我想用Spring来管理我的交易。

3 个答案:

答案 0 :(得分:24)

nanda is right 只能使用JpaTransactionManager。我们在这里讨论的事务管理器抽象是Spring的PlatformTransactionManager接口,JPATransactionManager是理解JPA的接口的唯一实现。

您应该阅读Spring参考中的Transaction Management一章,以便更好地理解这一主题。

答案 1 :(得分:6)

org.springframework.orm.jpa.JpaTransactionManager

我的偏好是使用注释:

<tx:annotation-driven transaction-manager="myTxManager" />

答案 2 :(得分:4)

org.springframework.transaction.PlatformTransactionManager接口是Spring API中的关键抽象,提供了在运行时控制事务操作的基本方法:begin,commit和rollback。

PlatformTransactionManager 界面,其实现

  1. JtaTransactionManager -----&gt; JTA
  2. DataSourceTransactionManager -----&gt; JDBC
  3. JpaTransactionManager ------&gt; JPA
  4. HibernateTransactionManager ------&gt; 休眠
  5. 它使你的要求无视你正在使用的弹簧