Spring Boot

Transactions Spring

Gestion des transactions avec @Transactional, propagation, isolation, rollback, PlatformTransactionManager

30 questions d'entretien·
Senior
1

Quel est le rôle principal de l'annotation @Transactional dans Spring ?

Réponse

@Transactional indique qu'une méthode doit s'exécuter dans un contexte transactionnel, garantissant l'atomicité des opérations de base de données. Spring crée automatiquement un proxy AOP autour de la classe pour gérer le début, le commit et le rollback des transactions. Cette approche déclarative simplifie grandement la gestion transactionnelle comparée à la programmation manuelle des transactions avec TransactionTemplate ou PlatformTransactionManager.

2

Quelle est la valeur par défaut du type de propagation pour @Transactional ?

Réponse

Propagation.REQUIRED est le type de propagation par défaut. Avec cette stratégie, Spring rejoindra une transaction existante si elle existe, ou en créera une nouvelle sinon. C'est le comportement le plus courant et le plus intuitif pour la plupart des cas d'usage, garantissant qu'une transaction est toujours présente pour les opérations de base de données.

3

Que se passe-t-il si une exception de type RuntimeException est levée dans une méthode @Transactional ?

Réponse

Par défaut, Spring effectue automatiquement un rollback de la transaction lorsqu'une RuntimeException (ou Error) est levée. Cela garantit que les modifications de la base de données sont annulées en cas d'erreur inattendue. En revanche, les exceptions checked (héritant de Exception mais pas de RuntimeException) ne déclenchent pas de rollback par défaut, sauf si elles sont spécifiées explicitement avec rollbackFor.

4

À quels emplacements peut-on appliquer l'annotation @Transactional ?

5

Quel comportement adopte Propagation.REQUIRES_NEW ?

+27 questions d'entretien

Maîtrise Spring Boot pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement