2010-10-07 66 views
12

我正在開發基於JPA + Hibernate,Spring和Wicket的Web應用程序。我想知道在我的代碼中實現交易的最佳方式是什麼?我應該使用什麼交易管理器?它應該是org.springframework.orm.jpa.JpaTransactionManagerorg.springframework.jdbc.datasource.DataSourceTransactionManager還是別的?我想用Spring來管理我的交易。要使用什麼交易管理器? (JPA,Spring)

回答

19

nanda is right,您可以使用JpaTransactionManager接口。我們在此討論的Transaction Manager抽象是Spring的PlatformTransactionManager接口,而JPATransactionManager是理解JPA的接口的唯一實現。

您應該閱讀Spring參考中的章節Transaction Management以更好地理解本主題。

+0

好的,非常感謝球員,其春天的moudle! – 2010-10-07 10:45:47

+0

+1爲你的完整性和+1爲南大也是公平的:) – 2010-10-07 11:12:03

+0

@SeanPatrickFloyd如果我們只能使用JpaTransactionManager,那麼爲什麼在Spring中存在這麼多的其他transacitonManagers以及它們應該被使用? – Erlan 2015-10-28 13:21:59

6
org.springframework.orm.jpa.JpaTransactionManager 

我的選擇是與標註使用:

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

org.springframework.transaction.PlatformTransactionManager接口是Spring API中的關鍵抽象,它提供了在運行時控制事務操作的基本方法:begin,commit和rollback。

的PlatformTransactionManager接口,其實現方式

  1. 的JtaTransactionManager ----->JTA
  2. 的DataSourceTransactionManager ----->JDBC
  3. JpaTransactionManager接口 ------>JPA
  4. 爲HibernateTransactionManager ------>休眠

它depand您需求量的您正在使用