return createProxyIfNecessary( event, persister, keyToLoad, options, persistenceContext );
return createProxyIfNecessary( event, entityDescriptor, keyToLoad, options, persistenceContext );
/** * Based on configured options, will either return a pre-existing proxy, * generate a new proxy, or perform an actual load. * * @param event The initiating load request event * @param persister The persister corresponding to the entity to be loaded * @param keyToLoad The key of the entity to be loaded * @param options The defined load options * @return The result of the proxy/load operation. */ protected Object proxyOrLoad( final LoadEvent event, final EntityPersister persister, final EntityKey keyToLoad, final LoadEventListener.LoadType options) { if ( LOG.isTraceEnabled() ) { LOG.tracev( "Loading entity: {0}", MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) ); } // this class has no proxies (so do a shortcut) if (!persister.hasProxy()) return load(event, persister, keyToLoad, options); final PersistenceContext persistenceContext = event.getSession().getPersistenceContext(); // look for a proxy Object proxy = persistenceContext.getProxy(keyToLoad); if (proxy != null) return returnNarrowedProxy(event, persister, keyToLoad, options, persistenceContext, proxy); if (options.isAllowProxyCreation()) return createProxyIfNecessary(event, persister, keyToLoad, options, persistenceContext); // return a newly loaded object return load(event, persister, keyToLoad, options); }
/** * Based on configured options, will either return a pre-existing proxy, * generate a new proxy, or perform an actual load. * * @param event The initiating load request event * @param persister The persister corresponding to the entity to be loaded * @param keyToLoad The key of the entity to be loaded * @param options The defined load options * @return The result of the proxy/load operation. */ protected Object proxyOrLoad( final LoadEvent event, final EntityPersister persister, final EntityKey keyToLoad, final LoadEventListener.LoadType options) { if ( LOG.isTraceEnabled() ) { LOG.tracev( "Loading entity: {0}", MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) ); } // this class has no proxies (so do a shortcut) if (!persister.hasProxy()) return load(event, persister, keyToLoad, options); final PersistenceContext persistenceContext = event.getSession().getPersistenceContext(); // look for a proxy Object proxy = persistenceContext.getProxy(keyToLoad); if (proxy != null) return returnNarrowedProxy(event, persister, keyToLoad, options, persistenceContext, proxy); if (options.isAllowProxyCreation()) return createProxyIfNecessary(event, persister, keyToLoad, options, persistenceContext); // return a newly loaded object return load(event, persister, keyToLoad, options); }