Frage

Ich verwende Anmerkungen Markierung Methoden, die in einer Transaktion ausgeführt werden soll.

Aber an einem Ort muss ich transactionManager.rollback() manuell ohne Anmerkung, tun. Wie kann ich transactionManager Objekt erhalten?

War es hilfreich?

Lösung

Wenn Sie die aktuelle Transaktion rückgängig zu machen möchten, können Sie verwenden

    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

Beachten Sie, dass es nicht um die Transaktion sofort nicht Rollback - den „Rollback nur“ Status setzt, wird so Transaktion während Versuch gerollt werden wieder zu begehen.


Andernfalls, wenn Sie eine programmatische Transaktion demaracation benötigen, können Sie TransactionTemplate verwenden, wie in 10,6 programmatische Transaktionsmanagement .

Sie können auch eine Instanz von PlatformTransactionManager erhalten, aber es ist nicht weit verbreitet, da TransactionTemplate ein empfohlene Ansatz für programmatische Transaktion demaracation ist.

Siehe auch:

Andere Tipps

Wenn Sie Ihr Objekt von Spring konfiguriert ist, können Sie ab injizieren natürlich eine Transaction hinein ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top