Wie Frühjahr Transaktionsmanager-Instanz erhalten?
-
29-09-2019 - |
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?
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 ...