Package org.hibernate.engine.loading
Class LoadContexts
java.lang.Object
org.hibernate.engine.loading.LoadContexts
Maps
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...
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
invalid reference
ResultSet#equals
-
Constructor Summary
ConstructorsConstructorDescriptionLoadContexts(PersistenceContext persistenceContext) Creates and binds this to the given persistence context. -
Method Summary
Modifier and TypeMethodDescriptionvoidcleanup()Release internal state associated with *all* result sets.voidRelease internal state associated with the given result set.getCollectionLoadContext(ResultSet resultSet) Get theCollectionLoadContextassociated with the givenResultSet, creating one if needed.getEntityLoadContext(ResultSet resultSet) Retrieves the persistence context to which this is bound.booleanDo we currently have any internal entries corresponding to loading collections?booleanDo we currently have any registered internal entries corresponding to loading collections?locateLoadingCollection(CollectionPersister persister, Serializable ownerKey) Attempt to locate the loading collection given the owner's key.
-
Constructor Details
-
LoadContexts
Creates and binds this to the given persistence context.- Parameters:
persistenceContext- The persistence context to which this will be bound.
-
-
Method Details
-
getPersistenceContext
Retrieves the persistence context to which this is bound.- Returns:
- The persistence context to which this is bound.
-
cleanup
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.- Parameters:
resultSet- The result set for which it is ok to release associated resources.
-
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. -
hasLoadingCollectionEntries
public boolean hasLoadingCollectionEntries()Do we currently have any internal entries corresponding to loading collections?- Returns:
- 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?- Returns:
- True if we currently hold state pertaining to a registered loading collections; false otherwise.
-
getCollectionLoadContext
Get theCollectionLoadContextassociated with the givenResultSet, creating one if needed.- Parameters:
resultSet- The result set for which to retrieve the context.- Returns:
- The processing context.
-
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...- Parameters:
persister- The collection persisterownerKey- The owner key- Returns:
- The loading collection, or null if not found.
-
getEntityLoadContext
-