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.