public class

LoadContexts

extends Object
java.lang.Object
   ↳ org.hibernate.engine.loading.LoadContexts

Class Overview

Maps ResultSet result-sets to specific contextual data related to processing that ResultSet 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...

Summary

Public Constructors
LoadContexts(PersistenceContext persistenceContext)
Creates and binds this to the given persistence context.
Public Methods
void cleanup()
Release internal state associated with *all* result sets.
void cleanup(ResultSet resultSet)
Release internal state associated with the given result set.
CollectionLoadContext getCollectionLoadContext(ResultSet resultSet)
Get the CollectionLoadContext associated with the given ResultSet, creating one if needed.
EntityLoadContext getEntityLoadContext(ResultSet resultSet)
PersistenceContext getPersistenceContext()
Retrieves the persistence context to which this is bound.
boolean hasLoadingCollectionEntries()
Do we currently have any internal entries corresponding to loading collections?
boolean hasRegisteredLoadingCollectionEntries()
Do we currently have any registered internal entries corresponding to loading collections?
PersistentCollection locateLoadingCollection(CollectionPersister persister, Serializable ownerKey)
Attempt to locate the loading collection given the owner's key.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public LoadContexts (PersistenceContext persistenceContext)

Creates and binds this to the given persistence context.

Parameters
persistenceContext The persistence context to which this will be bound.

Public Methods

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.

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.

Parameters
resultSet The result set for which it is ok to release associated resources.

public CollectionLoadContext getCollectionLoadContext (ResultSet resultSet)

Get the CollectionLoadContext associated with the given ResultSet, creating one if needed.

Parameters
resultSet The result set for which to retrieve the context.
Returns
  • The processing context.

public EntityLoadContext getEntityLoadContext (ResultSet resultSet)

public PersistenceContext getPersistenceContext ()

Retrieves the persistence context to which this is bound.

Returns
  • The persistence context to which this is bound.

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.

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.

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 persister
ownerKey The owner key
Returns
  • The loading collection, or null if not found.