final Object target = getTarget(); final SessionImplementor session = getSession(); if ( target==null && session!=null ) { final EntityKey key = new EntityKey( getIdentifier(), session.getFactory().getEntityPersister( getEntityName() ), session.getEntityMode() ); setTarget( session.getPersistenceContext().getEntity(key) ); if (replacement==null) replacement = serializableProxy(); return replacement; return new Integer( System.identityHashCode(proxy) ); else if ( isUninitialized() && method.equals(getIdentifierMethod) ) { return getIdentifier(); initialize(); setIdentifier( (Serializable) args[0] ); return INVOKE_IMPLEMENTATION; return method.invoke( getIdentifier(), args );