You are only allowed to have one instance of an entity object in your session at one time. The error you experienced occurs when you attempt to associate an entity from a (possibly earlier) hibernate session with another (later) session. (You associate an object with a session by using Session.lock() or Session.update()). If the object is already loaded in the session, you will get the exception you mentioned.
From the API documentation (in case you haven't read it and it sounds like you haven't):
Quote:
NonUniqueObjectException: This exception is thrown when an operation would break session-scoped identity. This occurs if the user tries to associate two different instances of the same Java class with a particular identifier, in the scope of a single Session.
The solution is quite simple. If you want to use the same object over and over with multiple sessions, or even if you want to re-load it and then keep it around, simply do a Session.evict() before you lock() or update(). If you want to simply save the object, you can do a saveOrUpdateCopy() which will work with a detached object.
Read up on detached objects. Read the FAQs too.
BTW, why on earth do you need to load an object multiple times in one operation anyway? An entity can only be in a single session, so I guess I don't get it.