Junior — Middle
¿Cómo funciona la anotación @Transactional y qué mecanismos utiliza para garantizar la integridad transaccional?
sobes.tech AI
Respuesta de la IA
La anotación @Transactional en Java (generalmente en el marco de Spring) se utiliza para marcar métodos o clases que deben ejecutarse dentro de una transacción.
Proporciona:
- Inicio automático de la transacción al ingresar en el método.
- Confirmación de la transacción al finalizar con éxito.
- Reversión de la transacción en caso de excepciones.
Los mecanismos utilizados son:
- Los proxies (dinámicos o CGLIB) interceptan las llamadas a los métodos.
- El gestor de transacciones (
PlatformTransactionManager) gestiona el ciclo de vida de la transacción.
Ejemplo:
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// si aquí se lanza RuntimeException, la transacción se revertirá
}
}
De esta forma, @Transactional garantiza la integridad de los datos, gestionando automáticamente las transacciones sin necesidad de escribir código explícito para comenzar, confirmar o revertir.