Aktualisieren Sie ein Objekt innerhalb des neuen Transaktionsbereichs
Ich habe ein Problem mit Transaktionsgrenzen und kann nicht herausfinden, was falsch läuft.
@Transactional( propagation = Propagation.REQUIRED )
Class A {
void methodA() {
try {
new B().callMethodB(obj)
} catch(Exception e) {
updateSomeProperty(obj1)
}
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
void updateSomeProperty(Object obj1) {
obj1.setProperty(1);
obj1.save();
}
}
Class B {
public void callMethodB(Object obj) throws Exception {
throws new Exception();
}
}
Das Problem ist, dass mein Objekt nicht aktualisiert wird, wenn der Fehler ausgelöst wird. Ich habe auch versucht, SQL-Code innerhalb der Methode auszulösenupdateSomeProperty
aber das hat auch nicht geklappt.
Grundsätzlich möchte ich die Eigenschaft des Objekts aktualisieren, unabhängig davon, ob die Ausnahme ausgelöst wird.
Irgendwelche Ideen ??