1.difference between lazy=true and lazy=false? 2.difference between merge() and update()? 3.what is detached object?
Difference between lazy="true" and lazy="false":
lazy="false" specifies that the association will always be eagerly fetched.
lazy="true" specifies that you can load associated collections lazily if and only if session is open.
Difference between Merge and Update:
Use update() if you are sure that the session does not contain an already persistent instance with the same identifier, and merge() if you want to merge your modifications at any time without consideration of the state of the session.
A detached object is an object that has been persistent, but its Session has been closed. The reference to the object is still valid, of course, and the detached instance might even be modified in this state. A detached instance can be reattached to a new Session at a later point in time, making it (and all the modifications) persistent again.