Spring Boot

Transacciones de Spring

Gestión de transacciones con @Transactional, propagation, isolation, rollback, PlatformTransactionManager

30 preguntas de entrevista·
Senior
1

¿Cuál es el rol principal de la anotación @Transactional en Spring?

Respuesta

@Transactional indica que un método debe ejecutarse dentro de un contexto transaccional, garantizando la atomicidad de las operaciones de base de datos. Spring crea automáticamente un proxy AOP alrededor de la clase para gestionar el inicio, el commit y el rollback de las transacciones. Este enfoque declarativo simplifica enormemente la gestión transaccional en comparación con la programación manual con TransactionTemplate o PlatformTransactionManager.

2

¿Cuál es el tipo de propagation por defecto para @Transactional?

Respuesta

Propagation.REQUIRED es el tipo de propagation por defecto. Con esta estrategia, Spring se unirá a una transacción existente si la hay, o creará una nueva en caso contrario. Este es el comportamiento más común e intuitivo para la mayoría de los casos de uso, garantizando que siempre haya una transacción presente para las operaciones de base de datos.

3

¿Qué sucede si se lanza una RuntimeException en un método @Transactional?

Respuesta

Por defecto, Spring realiza automáticamente un rollback de la transacción cuando se lanza una RuntimeException (o Error). Esto garantiza que las modificaciones de la base de datos se deshagan en caso de errores inesperados. En cambio, las excepciones checked (que heredan de Exception pero no de RuntimeException) no provocan un rollback por defecto, a menos que se especifiquen explícitamente con rollbackFor.

4

¿Dónde se puede aplicar la anotación @Transactional?

5

¿Qué comportamiento adopta Propagation.REQUIRES_NEW?

+27 preguntas de entrevista

Domina Spring Boot para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis