Подтвердить что ты не робот

Какой менеджер транзакций использовать? (JPA, Spring)

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

4b9b3361

Ответ 1

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

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

Ответ 2

org.springframework.orm.jpa.JpaTransactionManager

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

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

Ответ 3

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

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

  • JtaTransactionManager ----- > JTA
  • DataSourceTransactionManager ----- > JDBC
  • JpaTransactionManager ------ > JPA
  • HibernateTransactionManager ------ > Hibernate

он откидывается на ваше требование, которое moudle Spring использует