Sobes.tech
Junior — Middle

Comment fonctionne l'annotation @Transactional et quels mécanismes utilise-t-elle pour assurer l'intégrité transactionnelle?

sobes.tech IA

Réponse de l'IA

L'annotation @Transactional en Java (généralement dans le cadre de Spring) est utilisée pour marquer des méthodes ou des classes qui doivent s'exécuter dans le cadre d'une transaction.

Elle assure :

  • Démarrage automatique de la transaction lors de l'entrée dans la méthode.
  • Commit de la transaction en cas de succès.
  • Rollback de la transaction en cas d'exception.

Les mécanismes utilisés sont :

  • Les proxies (dynamiques ou CGLIB) interceptent les appels de méthodes.
  • Le gestionnaire de transactions (PlatformTransactionManager) gère le cycle de vie de la transaction.

Exemple :

@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        userRepository.save(user);
        // si une RuntimeException est levée ici, la transaction sera annulée
    }
}

Ainsi, @Transactional garantit l'intégrité des données, en gérant automatiquement les transactions sans avoir besoin d'écrire du code explicite pour commencer, valider ou annuler.