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.