Hibernate version: 1.3 beta 1
Mapping documents:
<class name="User" table="UserInfo" lazy="true">
...
<many-to-one name="userRequisites" column="UserRequisitesID" cascade="all"
foreign-key="FK_UserInfo_UserRequisites"/>
...
<class name="UserRequisites" table="UserRequisites" lazy="true">
...
Code between sessionFactory.openSession() and session.close():
User detachedUser = ...
User previousUserState = session.load(userClass,detachedUser.getId());
session.merge(detachedUser);
Full stack trace of any exception that occurs:
Dont' have full stack, but exeption rised -
PersistentObjectException: object was an uninitialized proxy for: UserRequisites
As I understand, exception is rised because of this code in org.hibernate.event.DefaultMergeEventListener:
Code:
protected Object entityIsDetached(MergeEvent event, Map copyCache)
{
...
if ( result == null )
{
return entityIsTransient(event, copyCache);
}
else
{
copyCache.put(entity, result); //before cascade!
final Object target = [b]source.unproxy(result)[/b];
...
Why is there used unproxy() instead unproxyAndReassociate()?