Junior — Middle
Können Sie erklären, was unter Verbreitungsebenen bei der Transaktionsverwaltung zu verstehen ist?
sobes.tech KI
Antwort von AI
Die Propagationsstufen in der Transaktionsverwaltung bestimmen, wie sich eine Transaktion verhält, wenn Methoden aufgerufen werden, die ebenfalls transaktional sein können. Dies ist wichtig, um zu verstehen, ob eine Methode eine bestehende Transaktion nutzt, eine neue erstellt oder ohne Transaktion arbeitet.
Die wichtigsten Propagationsstufen in Spring (Java):
- REQUIRED (Standard): Wenn eine aktuelle Transaktion besteht, schließt sich die Methode ihr an, andernfalls wird eine neue erstellt.
- REQUIRES_NEW: Es wird immer eine neue Transaktion erstellt, die aktuelle (falls vorhanden) wird ausgesetzt.
- SUPPORTS: Wenn eine Transaktion besteht, arbeitet die Methode darin, andernfalls ohne Transaktion.
- NOT_SUPPORTED: Die Methode wird immer ohne Transaktion ausgeführt, die aktuelle Transaktion wird ausgesetzt.
- MANDATORY: Die Methode muss in einer bestehenden Transaktion ausgeführt werden, andernfalls wird eine Ausnahme ausgelöst.
- NEVER: Die Methode darf nicht in einer Transaktion ausgeführt werden, andernfalls wird eine Ausnahme ausgelöst.
- NESTED: Wenn eine Transaktion besteht, wird eine verschachtelte Transaktion (Savepoint) erstellt, andernfalls eine neue.
Beispiel:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveData() {
// Diese Methode ist immer in einer neuen Transaktion
}