org.hibernate.engine.loading
Class LoadContexts
java.lang.Object
org.hibernate.engine.loading.LoadContexts
public class LoadContexts
extends java.lang.Object
Maps
result-sets
to specific contextual data
related to processing that
result-sets
.
Implementation note: internally an
IdentityMap
is used to maintain
the mappings;
IdentityMap
was chosen because I'd rather not be
dependent upon potentially bad
ResultSet.equals
and {ResultSet#hashCode}
implementations.
Considering the JDBC-redesign work, would further like this contextual info
not mapped seperately, but available based on the result set being processed.
This would also allow maintaining a single mapping as we could reliably get
notification of the result-set closing...
LoadContexts
public LoadContexts(PersistenceContext persistenceContext)
Creates and binds this to the given persistence context.
persistenceContext
- The persistence context to which this
will be bound.
cleanup
public void cleanup()
Release internal state associated with *all* result sets.
This is intended as a "failsafe" process to make sure we get everything
cleaned up and released.
cleanup
public void cleanup(ResultSet resultSet)
Release internal state associated with the given result set.
This should be called when we are done with processing said result set,
ideally as the result set is being closed.
resultSet
- The result set for which it is ok to release
associated resources.
getCollectionLoadContext
public CollectionLoadContext getCollectionLoadContext(ResultSet resultSet)
resultSet
- The result set for which to retrieve the context.
getEntityLoadContext
public EntityLoadContext getEntityLoadContext(ResultSet resultSet)
getPersistenceContext
public PersistenceContext getPersistenceContext()
Retrieves the persistence context to which this is bound.
- The persistence context to which this is bound.
hasLoadingCollectionEntries
public boolean hasLoadingCollectionEntries()
Do we currently have any internal entries corresponding to loading
collections?
- True if we currently hold state pertaining to loading collections;
false otherwise.
hasRegisteredLoadingCollectionEntries
public boolean hasRegisteredLoadingCollectionEntries()
Do we currently have any registered internal entries corresponding to loading
collections?
- True if we currently hold state pertaining to a registered loading collections;
false otherwise.
locateLoadingCollection
public PersistentCollection locateLoadingCollection(CollectionPersister persister,
Serializable ownerKey)
Attempt to locate the loading collection given the owner's key. The lookup here
occurs against all result-set contexts...
persister
- The collection persisterownerKey
- The owner key
- The loading collection, or null if not found.