handhabt, erhielt ich diesen Code. Ich bin mit Federverschluß und JPAWie man Feder jpa @ transactional und neue Einsätze vom catch Block
@Transactional
public class MyClass {
public void createSomething() {
try {
saveAndFlush();
} catch (Exception e) {
// Since error has occured I want to insert this information
// into a audit table
repository.saveAndFlush();
}
}
}
Nun, wenn die Ausnahme auftritt, wird die Transaktion rückgängig gemacht und damit die Fehlertabelle Einsatz ist nicht passiert.
I
seheHHH000099: an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session): org.hibernate.AssertionFailure: null id in XXXXX entry (don't flush the Session after an exception occurs)
Um dies zu beheben, habe ich versucht, den Fehler Einsatz in einem neuen Verfahren mit @Transactional(propagation = Propagation.REQUIRES_NEW)
auf dem Verständnis, markiert zu tun, dass die innere Transaktion würde abzuschließen und Außen würde ein Rollback
Aber ich sehe meine beabsichtigte Ausgabe nicht.
Bitte geben
Korrekt. Es ist in der Tat ein Duplikat – Shiv
@ Alan-Heu - auch wenn ich die Anweisungen in Ihrem ursprünglichen Thread befolge, sehe ich immer noch das gleiche Problem. Ich machte es als transactional in einzelnen Methoden und fügte hinzu, dass eine neue propogation erforderlich ist – Shiv