Middle+
Wie viele Transaktionen werden geöffnet, wenn in einer Klasse mit zwei Methoden, jede mit @Transactional propagation REQUIRES_NEW, und die erste Methode die zweite aufruft?
sobes.tech KI
Antwort von AI
Bei Verwendung der @Transactional-Annotation mit propagation = REQUIRES_NEW wird jede Methode in ihrer eigenen separaten Transaktion ausgeführt. Wenn die erste Methode aufgerufen wird, wird die erste Transaktion geöffnet. Beim Aufruf der zweiten Methode aus der ersten wird die aktuelle Transaktion ausgesetzt und eine neue Transaktion für die zweite Methode geöffnet. Nach Abschluss der zweiten Methode wird diese Transaktion geschlossen und die erste wieder aufgenommen.
Insgesamt werden 2 Transaktionen geöffnet: eine für die erste Methode und eine für die zweite.
Beispiel:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodOne() {
// Transaktion 1
methodTwo(); // Aufruf der zweiten Methode
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodTwo() {
// Transaktion 2
}