Ich habe eine Methode in Java, die von einer spring Transactional
Annotation umschlossen ist.Spring Transaktionsannotation, Isolierung funktioniert nicht für READ_UNCOMMITTED
Ich habe 2 Operationen innerhalb, einer ist delete
, ein anderer ist insert
. Meine Einfügung-Anweisung muss sich auf die erste Operation verlassen (die delete
ist), aber jetzt wegen der ersten Operation noch nicht festgeschrieben, meine Einfügung fehlschlagen (eindeutige Einschränkung). Aber das ist komisch, dass ich in der Regel innerhalb derselben Transaktion in der Lage sein sollte, die nicht-committed Operation in derselben Transaktion zu lesen/zu sehen (mein altes proprietäres Framework ist dazu in der Lage), aber das passiert nicht für mein Szenario, das zweite Einfügung schlägt immer noch fehl, weil die Daten noch nicht gelöscht sind.
Ich versuche, Isolation READ_UNCOMMITTED
zu verwenden, aber es funktioniert nicht.
Ich muss diese beiden Operationen in derselben Transaktion, da jeder der Fehler Rollback beide Operationen, ich kann nicht die erste Operation fest, dann weiter mit der zweiten.
Wie kann ich das im Spring-Framework tun?
Diese Spülmodus mich wirklich töten, wie kommt die Spülung Standard ist nicht von Code, um ... „es folgt immer einer bestimmten Reihenfolge ", gibt es ein Dokument, auf das ich mich beziehen kann? es sollte einen Grund dafür geben ... – GMsoF
nach dieser http://docs.oracle.com/javaee/6/api/javax/persistence/FlushModeType.html, sollte meine Config standardmäßig wie "auto" sein, wie kommt es es wird nicht vor "allen Abfrageausführung" gelöscht? – GMsoF
http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/event/def/AbstractFlushingEventListener.html#performExecutions%28org.hibernate.event.EventSource%29 – shankarsh15