Sobes.tech
Junior — Middle

Wie funktioniert die Annotation @Transactional und welche Mechanismen nutzt sie, um die transaktionale Integrität sicherzustellen?

sobes.tech KI

Antwort von AI

Die @Transactional-Annotation in Java (meist im Spring Framework) wird verwendet, um Methoden oder Klassen zu kennzeichnen, die innerhalb einer Transaktion ausgeführt werden sollen.

Sie sorgt für:

  • Automatischen Beginn der Transaktion beim Eintritt in die Methode.
  • Commit der Transaktion bei erfolgreichem Abschluss.
  • Rollback der Transaktion bei Auftreten von Ausnahmen.

Verwendete Mechanismen sind:

  • Proxies (dynamische oder CGLIB) intercepten die Methodenaufrufe.
  • Der Transaktionsmanager (PlatformTransactionManager) verwaltet den Lebenszyklus der Transaktion.

Beispiel:

@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        userRepository.save(user);
        // wenn hier eine RuntimeException ausgelöst wird, wird die Transaktion zurückgesetzt
    }
}

Auf diese Weise garantiert @Transactional die Datenintegrität, indem es Transaktionen automatisch verwaltet, ohne dass expliziter Code zum Starten, Commiten oder Zurücksetzen geschrieben werden muss.