What you describe is called the "Session-per-conversation" pattern and is documented in Chapter 11.3.2 of the reference manual.
http://www.hibernate.org/hib_docs/v3/re ... ongsession
The longer you leave it open, the more stale the data you have cached in your session becomes--other users could have modified it. Hibernate checks instance versions when you flush your changes to the database, throwing an exception if concurrent modification is detected. It is up to you the developer to catch and handle this exception in an intelligent way. Common options are the opportunity for the user to merge changes or to restart the business conversation with non-stale data.
Bruce