Transactions Spring
Gestion des transactions avec @Transactional, propagation, isolation, rollback, PlatformTransactionManager
1Quel est le rôle principal de l'annotation @Transactional dans Spring ?
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.
2Quelle est la valeur par défaut du type de propagation pour @Transactional ?
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.
3Que se passe-t-il si une exception de type RuntimeException est levée dans une méthode @Transactional ?
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.
À quels emplacements peut-on appliquer l'annotation @Transactional ?
Quel comportement adopte Propagation.REQUIRES_NEW ?
+27 questions d'entretien
Autres sujets d'entretien Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging avec SLF4J et Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Gestion des exceptions
Validation avec Bean Validation
Spring Data JPA - Les bases
Entités JPA et relations
Requêtes JPA
Spring Data Repositories
Spring Security - Les bases
Spring Boot Actuator
Tests unitaires avec JUnit et Mockito
Tests Spring Boot
Profiles et Environment
RestTemplate et WebClient
Async et Scheduling
Caching avec Spring
Spring WebFlux (Reactive)
Authentification et autorisation avancées
JWT et sécurité stateless
OAuth2 et Authorization Server
Spring Boot et Docker
Microservices avec Spring
Spring Cloud Config
Optimisation des performances
GraalVM Native Images
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