2010-10-07 20 views
12

Estoy desarrollando una aplicación web basada en JPA + Hibernate, Spring y Wicket. Me preguntaba ¿cuál es la mejor forma de implementar transacciones en mi código? ¿Qué gerente de transacciones debería usar? ¿Debería ser org.springframework.orm.jpa.JpaTransactionManager, o org.springframework.jdbc.datasource.DataSourceTransactionManager o alguna otra cosa? Me gustaría usar Spring para administrar mis transacciones.¿Qué administrador de transacciones usar? (JPA, Spring)

Respuesta

19

nanda is right, que puede utilice únicamente JpaTransactionManager. La abstracción de Transaction Manager de la que estamos hablando aquí es la interfaz PlatformTransactionManager de Spring, y JPATransactionManager es la única implementación de esa interfaz que comprende JPA.

Debe leer el capítulo Transaction Management de la referencia de Spring para comprender mejor este tema.

+0

bien, muchas gracias chicos! –

+0

+1 para su integridad y +1 para nanda también para ser justo :) –

+0

@SeanPatrickFloyd Si podemos usar JpaTransactionManager solo entonces ¿por qué existen tantos otros manejadores de transacción en Spring y cuándo deberían usarse? – Erlan

6
org.springframework.orm.jpa.JpaTransactionManager 

Mi preferencia es utilizar esto con anotación:

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

La interfaz org.springframework.transaction.PlatformTransactionManager es la abstracción clave en Spring API que proporciona los métodos esenciales para controlar las operaciones de transacción en tiempo de ejecución: begin, commit y rollback.

PlatformTransactionManager interfaz, sus implementaciones

  1. JtaTransactionManager -----> JTA
  2. DataSourceTransactionManager -----> JDBC
  3. JpaTransactionManager ------>APP
  4. HibernateTransactionManager ------>Hibernate

que depand en su requerimiento, que moudle de la primavera que está utilizando

Cuestiones relacionadas