Defines the default load event listeners used by hibernate for loading entities
in response to generated load events.
doLoad
protected Object doLoad(LoadEvent event,
EntityPersister persister,
EntityKey keyToLoad,
LoadEventListener.LoadType options)
Coordinates the efforts to load a given entity. First, an attempt is
made to load the entity from the session-level cache. If not found there,
an attempt is made to locate it in second-level cache. Lastly, an
attempt is made to load it directly from the datasource.
event
- The load eventpersister
- The persister for the entity being requested for loadkeyToLoad
- The EntityKey representing the entity to be loaded.options
- The load options.
- The loaded entity, or null.
load
protected Object load(LoadEvent event,
EntityPersister persister,
EntityKey keyToLoad,
LoadEventListener.LoadType options)
Perfoms the load of an entity.
event
- The initiating load request eventpersister
- The persister corresponding to the entity to be loadedkeyToLoad
- The key of the entity to be loadedoptions
- The defined load options
loadFromDatasource
protected Object loadFromDatasource(LoadEvent event,
EntityPersister persister,
EntityKey keyToLoad,
LoadEventListener.LoadType options)
Performs the process of loading an entity from the configured
underlying datasource.
event
- The load eventpersister
- The persister for the entity being requested for loadkeyToLoad
- The EntityKey representing the entity to be loaded.options
- The load options.
- The object loaded from the datasource, or null if not found.
loadFromSecondLevelCache
protected Object loadFromSecondLevelCache(LoadEvent event,
EntityPersister persister,
LoadEventListener.LoadType options)
Attempts to load the entity from the second-level cache.
event
- The load eventpersister
- The persister for the entity being requested for loadoptions
- The load options.
- The entity from the second-level cache, or null.
loadFromSessionCache
protected Object loadFromSessionCache(LoadEvent event,
EntityKey keyToLoad,
LoadEventListener.LoadType options)
throws HibernateException
Attempts to locate the entity in the session-level cache.
If allowed to return nulls, then if the entity happens to be found in
the session cache, we check the entity type for proper handling
of entity hierarchies.
If checkDeleted was set to true, then if the entity is found in the
session-level cache, it's current status within the session cache
is checked to see if it has previously been scheduled for deletion.
event
- The load eventkeyToLoad
- The EntityKey representing the entity to be loaded.options
- The load options.
- The entity from the session-level cache, or null.
lockAndLoad
protected Object lockAndLoad(LoadEvent event,
EntityPersister persister,
EntityKey keyToLoad,
LoadEventListener.LoadType options,
SessionImplementor source)
If the class to be loaded has been configured with a cache, then lock
given id in that cache and then perform the load.
event
- The initiating load request eventpersister
- The persister corresponding to the entity to be loadedkeyToLoad
- The key of the entity to be loadedoptions
- The defined load optionssource
- The originating session
proxyOrLoad
protected Object proxyOrLoad(LoadEvent event,
EntityPersister persister,
EntityKey keyToLoad,
LoadEventListener.LoadType options)
Based on configured options, will either return a pre-existing proxy,
generate a new proxy, or perform an actual load.
event
- The initiating load request eventpersister
- The persister corresponding to the entity to be loadedkeyToLoad
- The key of the entity to be loadedoptions
- The defined load options
- The result of the proxy/load operation.