Sobes.tech
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.