Well, you seem to be right : for an update, it seems the lock() is not to be done :
Quote:
After reconnection, to force a version check on data you aren't updating, you may call Session.lock() with LockMode.READ on any objects that might have been updated by another transaction. You don't need to lock any data that you are updating.
So update() should in fact be ok for you.
In fact, lock() has to do with the versionning system :
http://www.hibernate.org/hib_docs/v3/re ... e-detachedIn your highly-concurrential environment, maybe you should consider using version property.
If you can detect modifs of your beans, in the case you're sure it has not been touched, there's also this interesting statement in the ref doc :
Quote:
You may also call lock() instead of update() and use LockMode.READ (performing a version check, bypassing all caches) if you are sure that the object has not been modified.