Hallo zusammen,
ich habe eine Webanwendung, die auf Spring und Hibernate aufgesetzt ist.
Ich habe eine ServiceMethode, die mit folgender Annotation konfiguriert ist:
@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED)
Jetzt meine Frage, kann man es schaffen, das die Transaction erst gestartet wird, wenn die vorherige Transaktion commited wurde?
Das problem ist:
lese(A)
getBedingung(A.getB() exists?) -> wenn nicht weiter
einige Berechnungen...
create(B)
A.setB(B)
add(B) (danach ist Bedingung für A nicht mehr erfüllt)
Wenn die Methode durch 2 gleiche Requests 2 mal aufgerufen wird, und der zweite Aufruf bei getBedingung(A) ist bevor der erste gesspeichert hat, wird B zweimal erzeugt...:-(
Vielleicht steh ich auch einfach nur aufm Schlauch...;-)
Aber eventuell hat ja jemand ne idee...
viele Grüße
Chris
ich habe eine Webanwendung, die auf Spring und Hibernate aufgesetzt ist.
Ich habe eine ServiceMethode, die mit folgender Annotation konfiguriert ist:
@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED)
Jetzt meine Frage, kann man es schaffen, das die Transaction erst gestartet wird, wenn die vorherige Transaktion commited wurde?
Das problem ist:
lese(A)
getBedingung(A.getB() exists?) -> wenn nicht weiter
einige Berechnungen...
create(B)
A.setB(B)
add(B) (danach ist Bedingung für A nicht mehr erfüllt)
Wenn die Methode durch 2 gleiche Requests 2 mal aufgerufen wird, und der zweite Aufruf bei getBedingung(A) ist bevor der erste gesspeichert hat, wird B zweimal erzeugt...:-(
Vielleicht steh ich auch einfach nur aufm Schlauch...;-)
Aber eventuell hat ja jemand ne idee...

viele Grüße
Chris
Zuletzt bearbeitet: