2012-05-08 26 views
6

He estado comenzando a utilizar la anotación de Spring @Transactional, y proporciona una gran cantidad de conveniencia para la gestión de transacciones. Sin embargo, usar esta anotación en nuestro código ahora nos hace dependientes de Spring. Sé que con el tipo de JPA hay un paquete javax persistence donde podemos marcar el código con todo tipo si las anotaciones JPA, pero como todas provienen de javax.persistence, nuestro código no depende de ninguna implementación específica o ORM.Diferencia entre las anotaciones JTA y Spring @Transactional

Supongo que mi pregunta es si hay anotaciones similares para cosas transaccionales. Encontré un paquete javax jta, pero no estoy seguro de que realmente haya alguna anotación genérica que Spring pueda implementar. Básicamente, me pregunto si hay algún tipo de anotaciones genéricas tipo javax que podamos poner en métodos para administrar la funcionalidad transaccional para que no dependamos de Spring.

+0

¿Qué versión de JavaEE estás usando? – skaffman

+0

@skaffman Se prefiere Java 7, pero Java 6 funcionaría. – dnc253

+0

Dije la versión de JavaEE, no la versión de JavaSE. Sus preguntas se refieren a partes de la API de JavaEE, que depende en gran medida de la versión. – skaffman

Respuesta

9

No creo que JavaEE 6 ofrezca anotaciones de demarcación de transacciones como Spring. El análogo más cercano, creo, es el uso de beans de sesión sin estado EJB, que son transaccionales por naturaleza, pero no demarcados explícitamente como tales (alguien por favor corrígeme si estoy equivocado).

Es su decisión en cuanto a qué API (s) elige acoplar su código. La ventaja de utilizar Spring's @Transactional es que usted es independiente de la API de transacción específica que se utiliza (@Transactional puede trabajar con transacciones JTA, JPA, Hibernate o JDBC sin procesar, sin cambiar el código). Pero, por supuesto, estás atado a Spring.

Si el estilo de anotación es el que desea, entonces no veo otra alternativa que Spring, a menos que desee abarcar completamente JavaEE y usar anotaciones EJB 3.x-style.

+0

Ok, buena información para saber. Gracias. – dnc253

Cuestiones relacionadas