update - Hibernate, Spring

DerGrinsemann

Mitglied
Hallo!

Dürfte wieder einmal einen Denkfehler begehen :rolleyes:

Ich lade in einem Service ein Domain-Objekt (person) und speichere es gleich wieder und obwohl ich mich in der gleichen Session befinde und am Domain-Objekt nichts ändere wird mein version-Zähler hochgezählt (Optimistische Sperre) und IMMER ein Update durchgeführt. Warum? Es befindet sich doch in der gleichen und gültigen Session und das Object ist Persistent.

Code:
logger.debug("***** Get");
Person person = this.personDAO.findById(personForm.getId());
logger.debug("***** Update");
this.personDAO.update(person);

Code:
Hibernate: select person0_.id as id0_0_, person0_.version as version0_0_, person0_.birthName as birthName0_0_, person0_.firstName as firstName0_0_, person0_.lastName as lastName0_0_, person0_.secondName as secondName0_0_, person0_.thirdName as thirdName0_0_ from Person person0_ where person0_.id=?
Hibernate: update Person set version=?, birthName=?, firstName=?, lastName=?, secondName=?, thirdName=? where id=? and version=?
Hibernate: select person0_.id as id0_0_, person0_.version as version0_0_, person0_.birthName as birthName0_0_, person0_.firstName as firstName0_0_, person0_.lastName as lastName0_0_, person0_.secondName as secondName0_0_, person0_.thirdName as thirdName0_0_ from Person person0_ where person0_.id=?

Code:
2007-05-31 16:13:59,420 DEBUG at.brisk.jazz.service.PersonFormService.updateFromPersonForm(PersonFormService.java:52) - ***** Get
2007-05-31 16:13:59,423 DEBUG org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:220) - opened session at timestamp: 11806208394

....

2007-05-31 16:13:59,461 DEBUG at.brisk.jazz.service.PersonFormService.updateFromPersonForm(PersonFormService.java:55) - ***** Update
2007-05-31 16:13:59,463 DEBUG org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:220) - opened session at timestamp: 11806208394

Marco
 
Zuletzt bearbeitet:
Zurück