Solución:
Gestión de transacciones programáticas
- Nos permite gestionar transacciones mediante programación en nuestro código fuente.
- Esto significa Código difícil lógica de transacción entre nuestra lógica empresarial.
- Usamos programación para administrar transacciones
- Flexible, pero difícil de mantener con una gran cantidad de lógica empresarial. Introduce el texto estándar entre la lógica empresarial.
- Preferido cuando se va a introducir una lógica de transacción relativamente menor.
Gestión declarativa de transacciones
- Nos permite gestionar transacciones mediante configuración.
- Esto significa separando lógica de transacciones con lógica empresarial.
- Usamos anotaciones (o archivos XML) para administrar transacciones.
- Facil de mantener. El texto estándar se mantiene alejado de la lógica empresarial.
- Preferido cuando se trabaja con una gran cantidad de lógica de transacción.
No son mutuamente exclusivos.
Puede utilizar la gestión de transacciones decalrative (@Transactional
) en la mayoría de los casos y recurrir a la gestión programática de transacciones (TransactionTemplate
) cuando se enfrenta a limitaciones de Spring AOP (consulte 11.5.1 Comprender la implementación de transacciones declarativas de Spring Framework) o necesita controlar las transacciones de formas más complejas.
Spring ofrece transacciones tanto programáticas como declarativas.
Programático significa que tiene un código de gestión de transacciones que rodea su código comercial. Esto proporciona una flexibilidad extrema, pero es difícil de mantener y, bueno, repetitivo.
Declarativo significa que separa la gestión de transacciones del código comercial. Puede utilizar anotaciones o configuración basada en XML.
programmatic management is more flexible during development time but less flexible during application life
declarative management is less flexible during development time but more flexible during application life
http://docs.spring.io/spring/docs/3.0.x/reference/transaction.html
La gestión declarativa de transacciones permite eliminar cualquier dependencia del marco de transacciones del código Java. Los cuatro participantes que brindan soporte a las transacciones son el administrador de transacciones, la fábrica de proxy, el interceptor de transacciones y un conjunto de atributos de transacción.
Sugerir el uso de Gestión declarativa de transacciones, alternativa para HibernateTemplates, ya sea NamedJDBCTemplate o simpleJDBCTemplate