@Override public void onLoad(LoadEvent event, LoadType loadType) throws HibernateException { if ( IMMEDIATE_LOAD == loadType ) { String msg = loadType + ":" + event.getEntityClassName() + "#" + event.getEntityId(); throw new RuntimeException( msg ); } } }
/** * Handle the given load event. * * @param event The load event to be handled. * * @throws HibernateException */ public void onLoad( final LoadEvent event, final LoadEventListener.LoadType loadType) throws HibernateException { final EntityPersister persister = getPersister( event ); if ( persister == null ) { throw new HibernateException( "Unable to locate persister: " + event.getEntityClassName() ); } final Class idClass = persister.getIdentifierType().getReturnedClass(); if ( idClass != null && !idClass.isInstance( event.getEntityId() ) && !DelayedPostInsertIdentifier.class.isInstance( event.getEntityId() ) ) { checkIdClass( persister, event, loadType, idClass ); } doOnLoad( persister, event, loadType ); }
public void onLoad(LoadEvent event, LoadEventListener.LoadType loadType) throws HibernateException { if ( !Principal.isAuthorized( event.getEntityClassName(), event.getEntityId() ) ) { throw new SecurityException( "Unauthorized access" ); } } }
throw new HibernateException( "Attempt to load entity [%s] from cache using provided object instance, but cache " + "is storing references: " + event.getEntityId() ); Object entity = convertCacheEntryToEntity( entry, event.getEntityId(), persister, event, entityKey ); event.getEntityId(), persister.getEntityName() );
MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() persister.setIdentifier( event.getInstanceToLoad(), event.getEntityId(), event.getSession() ); .getFactory() .getEntityNotFoundDelegate() .handleEntityNotFound( event.getEntityClassName(), event.getEntityId() ); throw new NonUniqueObjectException( event.getEntityId(), event.getEntityClassName() );
final EntityType dependentParentType = (EntityType) singleSubType; final Type dependentParentIdType = dependentParentType.getIdentifierOrUniqueKeyType( event.getSession().getFactory() ); if ( dependentParentIdType.getReturnedClass().isInstance( event.getEntityId() ) ) { + ", got " + event.getEntityId().getClass() );
LOG.tracev( "Attempting to resolve: {0}", MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) ); LOG.tracev( "Resolved object in second-level cache: {0}", MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) ); LOG.tracev( "Object not resolved in any cache: {0}", MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) ); event.getSession().getPersistenceContext().getNaturalIdHelper().cacheNaturalIdCrossReferenceFromLoad( persister, event.getEntityId(), event.getSession().getPersistenceContext().getNaturalIdHelper().extractNaturalIdValues( entity,
private void loadByDerivedIdentitySimplePkValue( LoadEvent event, LoadEventListener.LoadType options, EntityPersister dependentPersister, EmbeddedComponentType dependentIdType, EntityPersister parentPersister) { final EntityKey parentEntityKey = event.getSession().generateEntityKey( event.getEntityId(), parentPersister ); final Object parent = doLoad( event, parentPersister, parentEntityKey, options ); final Serializable dependent = (Serializable) dependentIdType.instantiate( parent, event.getSession() ); dependentIdType.setPropertyValues( dependent, new Object[] {parent}, dependentPersister.getEntityMode() ); final EntityKey dependentEntityKey = event.getSession().generateEntityKey( dependent, dependentPersister ); event.setEntityId( dependent ); event.setResult( doLoad( event, dependentPersister, dependentEntityKey, options ) ); }
private void doOnLoad( final EntityPersister persister, final LoadEvent event, final LoadEventListener.LoadType loadType) { try { final EntityKey keyToLoad = event.getSession().generateEntityKey( event.getEntityId(), persister ); if ( loadType.isNakedEntityReturned() ) { //do not return a proxy! //(this option indicates we are initializing a proxy) event.setResult( load( event, persister, keyToLoad, loadType ) ); } else { //return a proxy if appropriate if ( event.getLockMode() == LockMode.NONE ) { event.setResult( proxyOrLoad( event, persister, keyToLoad, loadType ) ); } else { event.setResult( lockAndLoad( event, persister, keyToLoad, loadType, event.getSession() ) ); } } } catch (HibernateException e) { LOG.unableToLoadCommand( e ); throw e; } }
Object proxy = persister.createProxy( event.getEntityId(), event.getSession() ); persistenceContext.getBatchFetchQueue().addBatchLoadableEntityKey( keyToLoad ); persistenceContext.addProxy( keyToLoad, proxy );
/** * Performs the process of loading an entity from the configured * underlying datasource. * * @param event The load event * @param persister The persister for the entity being requested for load * * @return The object loaded from the datasource, or null if not found. */ protected Object loadFromDatasource( final LoadEvent event, final EntityPersister persister) { Object entity = persister.load( event.getEntityId(), event.getInstanceToLoad(), event.getLockOptions(), event.getSession() ); if ( event.isAssociationFetch() && event.getSession().getFactory().getStatistics().isStatisticsEnabled() ) { event.getSession().getFactory().getStatistics().fetchEntity( event.getEntityClassName() ); } return entity; }
LOG.tracev( "Loading entity: {0}", MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) );
if ( persister.canWriteToCache() ) { ck = cache.generateCacheKey( event.getEntityId(), persister, source.getFactory(),
private Object getFromSharedCache( final LoadEvent event, final EntityPersister persister, SessionImplementor source) { final EntityDataAccess cache = persister.getCacheAccessStrategy(); final Object ck = cache.generateCacheKey( event.getEntityId(), persister, source.getFactory(), source.getTenantIdentifier() ); final Object ce = CacheHelper.fromSharedCache( source, ck, persister.getCacheAccessStrategy() ); if ( source.getFactory().getStatistics().isStatisticsEnabled() ) { if ( ce == null ) { source.getFactory().getStatistics().entityCacheMiss( StatsHelper.INSTANCE.getRootEntityRole( persister ), cache.getRegion().getName() ); } else { source.getFactory().getStatistics().entityCacheHit( StatsHelper.INSTANCE.getRootEntityRole( persister ), cache.getRegion().getName() ); } } return ce; }
/** * Handle the given load event. * * @param event The load event to be handled. */ public void onLoad( final LoadEvent event, final LoadEventListener.LoadType loadType) { final EntityTypeDescriptor entityDescriptor = getDescriptor( event ); if ( entityDescriptor == null ) { throw new HibernateException( "Unable to locate entityDescriptor: " + event.getEntityClassName() ); } final Class idClass = entityDescriptor.getHierarchy().getIdentifierDescriptor().getJavaType(); if ( idClass != null && !idClass.isInstance( event.getEntityId() ) && !DelayedPostInsertIdentifier.class.isInstance( event.getEntityId() ) ) { checkIdClass( entityDescriptor, event, loadType, idClass ); } doOnLoad( entityDescriptor, event, loadType ); }
protected Object loadFromDatasource( final LoadEvent event, final EntityPersister persister, final EntityKey keyToLoad, final LoadEventListener.LoadType options) { final SessionImplementor source = event.getSession(); Object entity = persister.load( event.getEntityId(), event.getInstanceToLoad(), event.getLockMode(), source ); if ( event.isAssociationFetch() && source.getFactory().getStatistics().isStatisticsEnabled() ) { source.getFactory().getStatisticsImplementor().fetchEntity( event.getEntityClassName() ); } return entity; }
private void loadByDerivedIdentitySimplePkValue( LoadEvent event, LoadEventListener.LoadType options, EntityPersister dependentPersister, EmbeddedComponentType dependentIdType, EntityPersister parentPersister) { final EntityKey parentEntityKey = event.getSession().generateEntityKey( event.getEntityId(), parentPersister ); final Object parent = doLoad( event, parentPersister, parentEntityKey, options ); final Serializable dependent = (Serializable) dependentIdType.instantiate( parent, event.getSession() ); dependentIdType.setPropertyValues( dependent, new Object[] {parent}, dependentPersister.getEntityMode() ); final EntityKey dependentEntityKey = event.getSession().generateEntityKey( dependent, dependentPersister ); event.setEntityId( dependent ); event.setResult( doLoad( event, dependentPersister, dependentEntityKey, options ) ); }
private void loadByDerivedIdentitySimplePkValue( LoadEvent event, LoadEventListener.LoadType options, EntityPersister dependentPersister, EmbeddedComponentType dependentIdType, EntityPersister parentPersister) { final EntityKey parentEntityKey = event.getSession().generateEntityKey( event.getEntityId(), parentPersister ); final Object parent = doLoad( event, parentPersister, parentEntityKey, options ); final Serializable dependent = (Serializable) dependentIdType.instantiate( parent, event.getSession() ); dependentIdType.setPropertyValues( dependent, new Object[] {parent}, dependentPersister.getEntityMode() ); final EntityKey dependentEntityKey = event.getSession().generateEntityKey( dependent, dependentPersister ); event.setEntityId( dependent ); event.setResult( doLoad( event, dependentPersister, dependentEntityKey, options ) ); }
/** * Performs the process of loading an entity from the configured * underlying datasource. * * @param event The load event * @param entityDescriptor The entityDescriptor for the entity being requested for load * * @return The object loaded from the datasource, or null if not found. */ protected Object loadFromDatasource( final LoadEvent event, final EntityTypeDescriptor entityDescriptor) { Object entity = entityDescriptor.getSingleIdLoader() .load( event.getEntityId(), event.getLockOptions(), event.getSession() ); if ( event.isAssociationFetch() && event.getSession().getFactory().getStatistics().isStatisticsEnabled() ) { event.getSession().getFactory().getStatistics().fetchEntity( event.getEntityClassName() ); } return entity; }
private Object getFromSharedCache( final LoadEvent event, final EntityTypeDescriptor entityDescriptor, SessionImplementor source) { final EntityDataAccess cacheAccess = entityDescriptor.getHierarchy().getEntityCacheAccess(); final Object ck = cacheAccess.generateCacheKey( event.getEntityId(), entityDescriptor.getHierarchy(), source.getFactory(), source.getTenantIdentifier() ); final Object ce = CacheHelper.fromSharedCache( source, ck, cacheAccess ); if ( source.getFactory().getStatistics().isStatisticsEnabled() ) { if ( ce == null ) { source.getFactory().getStatistics().entityCacheMiss( entityDescriptor.getNavigableRole(), cacheAccess.getRegion().getName() ); } else { source.getFactory().getStatistics().entityCacheHit( entityDescriptor.getNavigableRole(), cacheAccess.getRegion().getName() ); } } return ce; }