taglibs sec spring jpa jta

spring - sec - ¿Qué administrador de transacciones debo usar(JTA vs JPA)?



spring-security-taglibs (1)

Tengo solicitud de primavera 4. En este momento yo uso JpatransactionManager.

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean>

¿Podría decirme cómo elegir a los gestores de transacciones?

Por ejemplo, ¿cuándo debo usar jta transaction manager y cuándo jpa, y qué ventajas y desventajas tienen?

Y es que tengo 2 formas de trabajar en primavera. La primera es la forma JPA y la segunda forma Hibernate. La primera incluye las anotaciones estándar de java y la api estándar y la segunda es la implementación de hibenrate. Si necesito usar JTA, debo usar hibernar y no JPA, ¿no es así?


Si desea delegar transacciones administradas a su Servidor de aplicaciones y manejar transacciones complejas a través de múltiples recursos, necesita usar JtaTransactionManager, pero creo que en la mayoría de los casos no es necesario. Lea esto para obtener más información http://docs.spring.io/spring-framework/docs/4.0.x/spring-framework-reference/html/transaction.html

¿Necesita un servidor de aplicaciones para la gestión de transacciones?

El soporte de gestión de transacciones de Spring Framework cambia las reglas tradicionales en cuanto a cuando una aplicación Java empresarial requiere un servidor de aplicaciones.

En particular, no necesita un servidor de aplicaciones simplemente para transacciones declarativas a través de EJBs. De hecho, incluso si su servidor de aplicaciones tiene potentes capacidades JTA, puede decidir que las transacciones declarativas de Spring Framework ofrezcan más poder y un modelo de programación más productivo que EJB CMT.

Por lo general, necesita la capacidad JTA de un servidor de aplicaciones solo si su aplicación necesita manejar transacciones a través de múltiples recursos, lo que no es un requisito para muchas aplicaciones. Muchas aplicaciones de gama alta utilizan una base de datos única y altamente escalable (como Oracle RAC). Los gestores de transacciones independientes, como Atomikos Transactions y JOTM, son otras opciones. Por supuesto, es posible que necesite otras capacidades de servidor de aplicaciones como Java Message Service (JMS) y Java EE Connector Architecture (JCA).

Spring Framework le da la opción de cuándo escalar su aplicación a un servidor de aplicaciones completamente cargado. Se acabaron los días en que la única alternativa al uso de EJB CMT o JTA era escribir código con transacciones locales como las de las conexiones JDBC, y enfrentarse a una gran cantidad de trabajo si necesita ese código para ejecutarse dentro de transacciones globales administradas por contenedores. Con Spring Framework, solo es necesario cambiar algunas de las definiciones de beans en su archivo de configuración, en lugar de su código.