Ich verwende Spring-Boot und JPA. Ich habe versucht, ungeprüfte Ausnahme wie (Constraint Violation), die Transaktion einwerfen zu fangen. Selbst wenn ich catch block hinzugefügt habe, wird es ausgelöst, wenn die Transaktionsgrenze überschritten wird.So fangen Sie ungeprüfte Transaktionsausnahme
Ich habe gegoogelt und gefunden, dass durch Transaktionsrückruf erreicht werden kann. Ich versuchte unten Code: immer noch geben Fehler
public class TransactionAspect extends TransactionSynchronizationAdapter {
@Before("@annotation(org.springframework.transaction.annotation.Transactional)")
public void registerTransactionSyncrhonization() {
TransactionSynchronizationManager.registerSynchronization(this);
}
@Override
public void afterCompletion(int status) {
// code
System.out.println(status);
}
}
Bitte helfen Sie mir!
+1 Danke..yeah. Du hast recht. Aber gibt es eine andere Problemumgehung, ohne manuell Flush aufzurufen? wie ich es überall manuell nennen muss. Ich möchte es generische Logik machen – NFE
@NFE Ich habe keine Idee, aber Sie können versuchen, extrahieren versuchen {} catch {} in Methode eine Ebene über '@ Transactional' oder verwenden Sie' @ ExceptionHandler', um Ausnahmen global zu fangen –