Hallo!
Ich dürfte einen schweren Denkfehler begehen ...
Derzeit bastle ich grade an meiner ersten WebApp mit Hibernate 3.x und Spring 2.x und habe folgendes Verständnisproblem:
Test-Code-Schnippsel aus einer Service-Klasse:
Code:
Person person = this.personDAO.findById(personForm.getId());
this.personDAO.update(person);
Ich lade ein Person-Object und speichere es gleich wieder und trotzdem geht mein version-Zähler (Optimistische Sperren) um 1 in die Höhe - obwohl ja gar keine Änderung stattfindet ... Warum?
Es befindet sich doch in der gleichen und gültigen Session und das Object ist Persistent.
"merge" schaut zwar vorher mit "select" nach und speichert (update) wirklich nur bei Änderungen, wird aber der Eintrag in der Zwischenzeit von einem anderem WebUser gelöscht, legt er mir den Eintrag wieder neu an (insert).
Wo liegt mein Denkfehler?
Marco