Junior — Middle
Hoe werkt de @Transactional-annotatie en welke mechanismen gebruikt het om transactionele integriteit te waarborgen?
sobes.tech AI
Antwoord van AI
De @Transactional-annotatie in Java (meestal in het Spring Framework) wordt gebruikt om methoden of klassen aan te duiden die binnen een transactie moeten worden uitgevoerd.
Het zorgt voor:
- Automatisch starten van een transactie bij het ingaan van de methode.
- Commit van de transactie bij succesvolle voltooiing.
- Rollback van de transactie bij het optreden van uitzonderingen.
De gebruikte mechanismen zijn:
- Proxies (dynamisch of CGLIB) onderscheppen methode-aanroepen.
- De transactiebeheerder (
PlatformTransactionManager) beheert de levenscyclus van de transactie.
Voorbeeld:
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// als hier een RuntimeException wordt gegooid, wordt de transactie teruggedraaid
}
}
Op deze manier garandeert @Transactional de gegevensintegriteit door transacties automatisch te beheren zonder expliciete code voor het starten, bevestigen of terugdraaien.