Transacciones de Spring
Gestión de transacciones con @Transactional, propagation, isolation, rollback, PlatformTransactionManager
1¿Cuál es el rol principal de la anotación @Transactional en Spring?
¿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?
¿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?
¿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.
¿Dónde se puede aplicar la anotación @Transactional?
¿Qué comportamiento adopta Propagation.REQUIRES_NEW?
+27 preguntas de entrevista
Otros temas de entrevista Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging con SLF4J y Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Manejo de excepciones
Bean Validation
Fundamentos de Spring Data JPA
Entidades JPA y relaciones
Consultas JPA
Spring Data Repositories
Fundamentos de Spring Security
Spring Boot Actuator
Pruebas unitarias con JUnit y Mockito
Testing en Spring Boot
Profiles y Environment
RestTemplate y WebClient
Async y Scheduling
Caching con Spring
Spring WebFlux (Reactive)
Autenticación y autorización avanzadas
JWT y seguridad stateless
OAuth2 y Authorization Server
Spring Boot y Docker
Microservices con Spring
Spring Cloud Config
Optimización del rendimiento
GraalVM Native Images
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