private Serializable getProxyIdentifier(Object proxy) { return ( (HibernateProxy) proxy ).getHibernateLazyInitializer().getIdentifier(); }
@Override protected String getSessionFactoryUuid() { return super.getSessionFactoryUuid(); } }
@Override public final Serializable getIdentifier() { if ( isUninitialized() && isInitializeProxyWhenAccessingIdentifier() ) { initialize(); } return id; }
@Override public <T> T unenhanceObject(T object) { if (object instanceof HibernateProxy) { HibernateProxy hibernateProxy = (HibernateProxy)object; LazyInitializer lazyInitializer = hibernateProxy.getHibernateLazyInitializer(); return (T)lazyInitializer.getImplementation(); } return object; }
private static boolean activeProxySession(HibernateProxy proxy) { final Session session = (Session) proxy.getHibernateLazyInitializer().getSession(); return session != null && session.isOpen() && session.isConnected(); }
@Override public final Object getImplementation() { initialize(); return target; }
/** * Getter for property 'connectedToSession'. * * @return Value for property 'connectedToSession'. */ protected final boolean isConnectedToSession() { return getProxyOrNull() != null; }
@Override public final boolean isReadOnly() { errorIfReadOnlySettingNotAvailable(); return readOnly; }
@Override public final void unsetSession() { prepareForPossibleLoadingOutsideTransaction(); session = null; readOnly = false; readOnlyBeforeAttachedToSession = null; }
@Override protected Serializable getId() { return super.getId(); }
@Override protected String getEntityName() { return super.getEntityName(); }
/** * Initialize an {@link AbstractLazyInitializer} after deserialization. * * This method should only be called during deserialization, * before associating the AbstractLazyInitializer with a session. * * @param li the {@link AbstractLazyInitializer} to initialize. */ protected void afterDeserialization(AbstractLazyInitializer li) { li.afterDeserialization( readOnly, sessionFactoryUuid, allowLoadOutsideTransaction ); } }
@Override protected boolean isAllowLoadOutsideTransaction() { return super.isAllowLoadOutsideTransaction(); }
/** * Unproxies a {@link HibernateProxy}. If the proxy is uninitialized, it automatically triggers an initialization. * In case the supplied object is null or not a proxy, the object will be returned as-is. * * @param proxy the {@link HibernateProxy} to be unproxied * @return the proxy's underlying implementation object, or the supplied object otherwise */ public static Object unproxy(Object proxy) { if ( proxy instanceof HibernateProxy ) { HibernateProxy hibernateProxy = (HibernateProxy) proxy; LazyInitializer initializer = hibernateProxy.getHibernateLazyInitializer(); return initializer.getImplementation(); } else { return proxy; } }
@Override public Object getIdentifierFrom(Object entity) { return ((HibernateProxy) entity).getHibernateLazyInitializer().getIdentifier(); }
@Override protected void prepareForPossibleLoadingOutsideTransaction() { super.prepareForPossibleLoadingOutsideTransaction(); }
@Override protected Serializable getId() { return super.getId(); }
@Override protected String getEntityName() { return super.getEntityName(); }
@Override public String bestGuessEntityName(Object object) { if ( object instanceof HibernateProxy ) { object = ( (HibernateProxy) object ).getHibernateLazyInitializer().getImplementation(); } return guessEntityName( object ); }
@Override public Object unproxyAndReassociate(Object maybeProxy) throws HibernateException { if ( maybeProxy instanceof HibernateProxy ) { final HibernateProxy proxy = (HibernateProxy) maybeProxy; final LazyInitializer li = proxy.getHibernateLazyInitializer(); reassociateProxy( li, proxy ); //initialize + unwrap the object and return it return li.getImplementation(); } else { return maybeProxy; } }