Hallo,
kann es sein, dass Hibernate es auch ablehnt ein nicht geändertes Objekt zu speichern? Schließlich, würde ja dadurch keine Zeile verändert. Erwartet Hibernate also, dass sich bei jeder Aktion immer etwas ändert, oder nicht?
Bekomme nämlich ein solche Fehlermeldung:
Quote:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update ; actual row count: 0; expected: 1
Daher obige Vermutung, dass es erwartet das sich min. eine Zeile ändert.
Allerdings hätte ich eine Meldung der Art "Versionattribut not changed, save or update operation rejected." oder so ähnlich erwartet.
Könnte allerdings sein, dass Hibernate es aufgrund des großen Objektbaums ohne Versionattribute (@Version nur in Hauptklasse) dies nicht feststellen kann.
Ist vor allem interessant, wenn man mehre gleichartige Objekte in einer Transaktion speichern will, da man die Ausnahme erst beim commit bekommt.
Daher müsste man wohl für jedes Objekt eine separate Transaction benutzen. da bei jeder Ausnahme die Session ja unbrauchbar wird. Somit würde vorheriges flushen, den Fehler nur früher provozieren. Ist halt auch schwierig zu unterscheiden, ob es nicht geändert wurde (eigentlich kein Fehler den der Anwender wissen müsste) oder die Änderung wegen konkurrierender Änderung verworfen wird.
Vielen Dank.
Viele Grüße Michael