Sobes.tech
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.