2010-10-07 2 views
12

Я разрабатываю веб-приложение на основе JPA + Hibernate, Spring и Wicket. Мне было интересно, как лучше всего реализовать транзакции в моем коде? Какой менеджер транзакций я должен использовать? Должно ли это быть org.springframework.orm.jpa.JpaTransactionManager, или org.springframework.jdbc.datasource.DataSourceTransactionManager или что-то еще? Я бы хотел использовать Spring для управления моими транзакциями.Какой менеджер транзакций использовать? (JPA, Spring)

ответ

19

nanda is right, вы можете использовать только JpaTransactionManager. Абстракция Transaction Manager, о которой мы говорим, это интерфейс Spring PlatformTransactionManager, а JPATransactionManager - единственная реализация этого интерфейса, которая понимает JPA.

Вы должны прочитать главу Transaction Management из справочника Spring, чтобы лучше понять эту тему.

+0

ок, спасибо большое, ребята! –

+0

+1 для вашего за полноту и +1 для nanda тоже, чтобы быть справедливым :) –

+0

@SeanPatrickFloyd Если мы можем использовать JpaTransactionManager только тогда, почему весной так много других transacitonManagers и когда они должны использоваться? – Erlan

6
org.springframework.orm.jpa.JpaTransactionManager 

Я предпочитаю использовать это с аннотацией:

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

Интерфейс org.springframework.transaction.PlatformTransactionManager - это ключевая абстракция в API Spring, обеспечивающая основные методы контроля транзакций во время выполнения: начало, фиксация и откат.

PlatformTransactionManager интерфейс, его реализации

  1. JtaTransactionManager ----->ЕТА
  2. DataSourceTransactionManager ----->JDBC
  3. JpaTransactionManager ------>JPA
  4. HibernateTransactionManager ------>Hibernate

это depand на ваше требование, которое Moudle весной ваш используют

Смежные вопросы