Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.hibernate.engine
Class StatefulPersistenceContext

    java.lang.Object
      org.hibernate.engine.StatefulPersistenceContext

All Implemented Interfaces:
  PersistenceContext

    public class StatefulPersistenceContext

extends Object
implements PersistenceContext

A `PersistenceContext` represents the state of persistent "stuff" which Hibernate is tracking. This includes persistent entities, collections, as well as proxies generated.

There is meant to be a one-to-one correspondence between a SessionImpl and a PersistentContext. The SessionImpl uses the PersistentContext to track the current state of its context. Event-listeners then use the PersistentContext to drive their processing.

Author:
  Steve Ebersole

Field Summary
`static Object` | `NO_ROW`

Constructor Summary
`StatefulPersistenceContext(SessionImplementor session)` Constructs a PersistentContext, bound to the given session.

Method Summary
`void` | `addCollectionHolder(PersistentCollection holder)` Register a `PersistentCollection` object for an array.
`void` | `addEntity(EntityKey key, Object entity)` Add a canonical mapping from entity key to entity instance
`void` | `addEntity(EntityUniqueKey euk, Object entity)` Add an entity to the cache by unique key
`EntityEntry` | `addEntity(Object entity, Status status, Object[] loadedState, EntityKey entityKey, Object version, LockMode lockMode, boolean existsInDatabase, EntityPersister persister, boolean disableVersionIncrement, boolean lazyPropertiesAreUnfetched)` Adds an entity to the internal caches.
`EntityEntry` | `addEntry(Object entity, Status status, Object[] loadedState, Object rowId, Serializable id, Object version, LockMode lockMode, boolean existsInDatabase, EntityPersister persister, boolean disableVersionIncrement, boolean lazyPropertiesAreUnfetched)` Generates an appropriate EntityEntry instance and adds it to the event source's internal caches.
`CollectionEntry` | `addInitializedCollection(CollectionPersister persister, PersistentCollection collection, Serializable id)` add a collection we just pulled out of the cache (does not need initializing)
`void` | `addInitializedDetachedCollection(CollectionPersister collectionPersister, PersistentCollection collection)` add an (initialized) collection that was created by another session and passed into update() (ie.
`void` | `addNewCollection(CollectionPersister persister, PersistentCollection collection)` Add a new collection (ie.
`void` | `addNonLazyCollection(PersistentCollection collection)` Register a collection for non-lazy loading at the end of the two-phase load
`void` | `addNullProperty(EntityKey ownerKey, String propertyName)` Record the fact that the association belonging to the keyed entity is null.
`void` | `addProxy(EntityKey key, Object proxy)` Add a proxy to the session cache
`void` | `addUninitializedCollection(CollectionPersister persister, PersistentCollection collection, Serializable id)` add a collection we just loaded up (still needs initializing)
`void` | `addUninitializedDetachedCollection(CollectionPersister persister, PersistentCollection collection)` add a detached uninitialized collection
`void` | `addUnownedCollection(CollectionKey key, PersistentCollection collection)` Add a collection which has no owner loaded
`void` | `afterLoad()` Call this after finishing a two-phase load
`void` | `afterTransactionCompletion()` Called after transactions end
`void` | `beforeLoad()` Call this before begining a two-phase load
`void` | `checkUniqueness(EntityKey key, Object object)` Attempts to check whether the given key represents an entity already loaded within the current session.
`void` | `clear()` Clear the state of the persistence context
`boolean` | `containsCollection(PersistentCollection collection)` Is the given collection associated with this persistence context?
`boolean` | `containsEntity(EntityKey key)` Is there an entity with the given key in the persistence context
`boolean` | `containsProxy(Object entity)` Is the given proxy associated with this persistence context?
`int` | `decrementCascadeLevel()` Called after cascading
`static StatefulPersistenceContext` | `deserialize(ObjectInputStream ois, SessionImplementor session)`
`BatchFetchQueue` | `getBatchFetchQueue()` Get the `BatchFetchQueue`, instantiating one if necessary.
`Object[]` | `getCachedDatabaseSnapshot(EntityKey key)` Retrieve the cached database snapshot for the requested entity key.
`int` | `getCascadeLevel()` Do we already know that the entity does not exist in the database?
`PersistentCollection` | `getCollection(CollectionKey collectionKey)` Get the collection instance associated with the `CollectionKey`
`Map` | `getCollectionEntries()` Get the mapping from collection instance to collection entry
`CollectionEntry` | `getCollectionEntry(PersistentCollection coll)` Get the collection entry for a persistent collection
`CollectionEntry` | `getCollectionEntryOrNull(Object collection)` Get the collection entry for a collection passed to filter, which might be a collection wrapper, an array, or an unwrapped collection.
`PersistentCollection` | `getCollectionHolder(Object array)` Get the `PersistentCollection` object for an array
`Object` | `getCollectionOwner(Serializable key, CollectionPersister collectionPersister)` Get the entity that owns this persistent collection
`Map` | `getCollectionsByKey()` Get the mapping from collection key to collection instance
`Object[]` | `getDatabaseSnapshot(Serializable id, EntityPersister persister)` Get the current state of the entity as known to the underlying database, or null if there is no corresponding row
`Map` | `getEntitiesByKey()` Get the mapping from key value to entity instance
`Object` | `getEntity(EntityKey key)` Get the entity instance associated with the given `EntityKey`
`Object` | `getEntity(EntityUniqueKey euk)` Get an entity cached by unique key
`Map` | `getEntityEntries()` Get the mapping from entity instance to entity entry
`EntityEntry` | `getEntry(Object entity)` Retreive the EntityEntry representation of the given entity.
`Object` | `getIndexInOwner(String entity, String property, Object childEntity, Map mergeMap)` Search the persistence context for an index of the child object, given a collection role
`LoadContexts` | `getLoadContexts()` Retrieve this persistence context's managed load context.
`Serializable` | `getLoadedCollectionOwnerIdOrNull(PersistentCollection collection)` Get the ID for the entity that owned this persistent collection when it was loaded
`Object` | `getLoadedCollectionOwnerOrNull(PersistentCollection collection)` Get the entity that owned this persistent collection when it was loaded
`Object[]` | `getNaturalIdSnapshot(Serializable id, EntityPersister persister)` Get the values of the natural id fields as known to the underlying database, or null if the entity has no natural id or there is no corresponding row.
`HashSet` | `getNullifiableEntityKeys()` Retrieve the set of EntityKeys representing nullifiable references
`Serializable` | `getOwnerId(String entity, String property, Object childEntity, Map mergeMap)` Search the persistence context for an owner for the child object, given a collection role.
`Object` | `getProxy(EntityKey key)` Get an existing proxy by key
`SessionImplementor` | `getSession()` Get the session to which this persistence context is bound.
`Serializable` | `getSnapshot(PersistentCollection coll)` Get the snapshot of the pre-flush collection state
`boolean` | `hasNonReadOnlyEntities()`
`int` | `incrementCascadeLevel()` Called before cascading
`void` | `initializeNonLazyCollections()` Force initialization of all non-lazy collections encountered during the current two-phase load (actually, this is a no-op, unless this is the "outermost" load)
`boolean` | `isEntryFor(Object entity)` Is there an EntityEntry for this instance?
`boolean` | `isFlushing()` Is a flush cycle currently in process?
`boolean` | `isPropertyNull(EntityKey ownerKey, String propertyName)` Is the association property belonging to the keyed entity null?
`boolean` | `isStateless()`
`Object` | `narrowProxy(Object proxy, EntityPersister persister, EntityKey key, Object object)` If the existing proxy is insufficiently "narrow" (derived), instantiate a new proxy and overwrite the registration of the old one.
`Object` | `proxyFor(EntityPersister persister, EntityKey key, Object impl)` Return the existing proxy associated with the given `EntityKey`, or the third argument (the entity associated with the key) if no proxy exists.
`Object` | `proxyFor(Object impl)` Return the existing proxy associated with the given `EntityKey`, or the argument (the entity associated with the key) if no proxy exists.
`boolean` | `reassociateIfUninitializedProxy(Object value)` Takes the given object and, if it represents a proxy, reassociates it with this event source.
`void` | `reassociateProxy(Object value, Serializable id)` If a deleted entity instance is re-saved, and it has a proxy, we need to reset the identifier of the proxy
`PersistentCollection` | `removeCollectionHolder(Object array)` Remove the mapping of collection to holder during eviction of the owning entity
`Object` | `removeEntity(EntityKey key)` Remove an entity from the session cache, also clear up other state associated with the entity, all except for the `EntityEntry`
`EntityEntry` | `removeEntry(Object entity)` Remove an entity entry from the session cache
`Object` | `removeProxy(EntityKey key)` Remove a proxy from the session cache.
`void` | `replaceDelayedEntityIdentityInsertKeys(EntityKey oldKey, Serializable generatedId)`
`void` | `serialize(ObjectOutputStream oos)` Used by the owning session to explicitly control serialization of the persistence context.
`void` | `setEntryStatus(EntityEntry entry, Status status)` Set the status of an entry
`void` | `setFlushing(boolean flushing)` Called before and after the flushcycle
`void` | `setReadOnly(Object entity, boolean readOnly)` Set the object to read only and discard it's snapshot
`String` | `toString()` Returns a string representation of the object.
`Object` | `unproxy(Object maybeProxy)` Get the entity instance underlying the given proxy, throwing an exception if the proxy is uninitialized.
`Object` | `unproxyAndReassociate(Object maybeProxy)` Possibly unproxy the given reference and reassociate it with the current session.
`PersistentCollection` | `useUnownedCollection(CollectionKey key)` Get and remove a collection whose owner is not yet loaded, when its owner is being loaded

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### NO_ROW

    public static final Object NO_ROW

Constructor Detail

### StatefulPersistenceContext

    public StatefulPersistenceContext(SessionImplementor session)

  Constructs a PersistentContext, bound to the given session.

  Parameters:
    `session` - The session "owning" this context.

Method Detail

### isStateless

    public boolean isStateless()

  Specified by:
    `isStateless` in interface `PersistenceContext`

### getSession

    public SessionImplementor getSession()

  Description copied from interface: `PersistenceContext`
  Get the session to which this persistence context is bound.

  Specified by:
    `getSession` in interface `PersistenceContext`
  Returns:
    The session.

### getLoadContexts

    public LoadContexts getLoadContexts()

  Description copied from interface: `PersistenceContext`
  Retrieve this persistence context's managed load context.

  Specified by:
    `getLoadContexts` in interface `PersistenceContext`
  Returns:
    The load context

### addUnownedCollection

    public void addUnownedCollection(CollectionKey key,
                                     PersistentCollection collection)

  Description copied from interface: `PersistenceContext`
  Add a collection which has no owner loaded

  Specified by:
    `addUnownedCollection` in interface `PersistenceContext`

### useUnownedCollection

    public PersistentCollection useUnownedCollection(CollectionKey key)

  Description copied from interface: `PersistenceContext`
  Get and remove a collection whose owner is not yet loaded, when its owner is being loaded

  Specified by:
    `useUnownedCollection` in interface `PersistenceContext`

### getBatchFetchQueue

    public BatchFetchQueue getBatchFetchQueue()

  Get the `BatchFetchQueue`, instantiating one if necessary.

  Specified by:
    `getBatchFetchQueue` in interface `PersistenceContext`

### clear

    public void clear()

  Description copied from interface: `PersistenceContext`
  Clear the state of the persistence context

  Specified by:
    `clear` in interface `PersistenceContext`

### hasNonReadOnlyEntities

    public boolean hasNonReadOnlyEntities()

  Specified by:
    `hasNonReadOnlyEntities` in interface `PersistenceContext`
  Returns:
    false if we know for certain that all the entities are read-only

### setEntryStatus

    public void setEntryStatus(EntityEntry entry,
                               Status status)

  Description copied from interface: `PersistenceContext`
  Set the status of an entry

  Specified by:
    `setEntryStatus` in interface `PersistenceContext`

### afterTransactionCompletion

    public void afterTransactionCompletion()

  Description copied from interface: `PersistenceContext`
  Called after transactions end

  Specified by:
    `afterTransactionCompletion` in interface `PersistenceContext`

### getDatabaseSnapshot

    public Object[] getDatabaseSnapshot(Serializable id,
                                        EntityPersister persister)
                                 throws HibernateException

  Get the current state of the entity as known to the underlying database, or null if there is no corresponding row

  Specified by:
    `getDatabaseSnapshot` in interface `PersistenceContext`
  Throws:
    `HibernateException`

### getNaturalIdSnapshot

    public Object[] getNaturalIdSnapshot(Serializable id,
                                         EntityPersister persister)
                                  throws HibernateException

  Description copied from interface: `PersistenceContext`
  Get the values of the natural id fields as known to the underlying database, or null if the entity has no natural id or there is no corresponding row.

  Specified by:
    `getNaturalIdSnapshot` in interface `PersistenceContext`
  Throws:
    `HibernateException`

### getCachedDatabaseSnapshot

    public Object[] getCachedDatabaseSnapshot(EntityKey key)

  Retrieve the cached database snapshot for the requested entity key.

  This differs from `getDatabaseSnapshot(java.io.Serializable, org.hibernate.persister.entity.EntityPersister)` is two important respects:
  1. no snapshot is obtained from the database if not already cached
  2. an entry of `NO_ROW` here is interpretet as an exception

  Specified by:
    `getCachedDatabaseSnapshot` in interface `PersistenceContext`
  Parameters:
    `key` - The entity key for which to retrieve the cached snapshot
  Returns:
    The cached snapshot
  Throws:
    `IllegalStateException` - if the cached snapshot was == `NO_ROW`.

### addEntity

    public void addEntity(EntityKey key,
                          Object entity)

  Description copied from interface: `PersistenceContext`
  Add a canonical mapping from entity key to entity instance

  Specified by:
    `addEntity` in interface `PersistenceContext`

### getEntity

    public Object getEntity(EntityKey key)

  Get the entity instance associated with the given `EntityKey`

  Specified by:
    `getEntity` in interface `PersistenceContext`

### containsEntity

    public boolean containsEntity(EntityKey key)

  Description copied from interface: `PersistenceContext`
  Is there an entity with the given key in the persistence context

  Specified by:
    `containsEntity` in interface `PersistenceContext`

### removeEntity

    public Object removeEntity(EntityKey key)

  Remove an entity from the session cache, also clear up other state associated with the entity, all except for the `EntityEntry`

  Specified by:
    `removeEntity` in interface `PersistenceContext`

### getEntity

    public Object getEntity(EntityUniqueKey euk)

  Get an entity cached by unique key

  Specified by:
    `getEntity` in interface `PersistenceContext`

### addEntity

    public void addEntity(EntityUniqueKey euk,
                          Object entity)

  Add an entity to the cache by unique key

  Specified by:
    `addEntity` in interface `PersistenceContext`

### getEntry

    public EntityEntry getEntry(Object entity)

  Retreive the EntityEntry representation of the given entity.

  Specified by:
    `getEntry` in interface `PersistenceContext`
  Parameters:
    `entity` - The entity for which to locate the EntityEntry.
  Returns:
    The EntityEntry for the given entity.

### removeEntry

    public EntityEntry removeEntry(Object entity)

  Remove an entity entry from the session cache

  Specified by:
    `removeEntry` in interface `PersistenceContext`

### isEntryFor

    public boolean isEntryFor(Object entity)

  Is there an EntityEntry for this instance?

  Specified by:
    `isEntryFor` in interface `PersistenceContext`

### getCollectionEntry

    public CollectionEntry getCollectionEntry(PersistentCollection coll)

  Get the collection entry for a persistent collection

  Specified by:
    `getCollectionEntry` in interface `PersistenceContext`

### addEntity

    public EntityEntry addEntity(Object entity,
                                 Status status,
                                 Object[] loadedState,
                                 EntityKey entityKey,
                                 Object version,
                                 LockMode lockMode,
                                 boolean existsInDatabase,
                                 EntityPersister persister,
                                 boolean disableVersionIncrement,
                                 boolean lazyPropertiesAreUnfetched)

  Adds an entity to the internal caches.

  Specified by:
    `addEntity` in interface `PersistenceContext`

### addEntry

    public EntityEntry addEntry(Object entity,
                                Status status,
                                Object[] loadedState,
                                Object rowId,
                                Serializable id,
                                Object version,
                                LockMode lockMode,
                                boolean existsInDatabase,
                                EntityPersister persister,
                                boolean disableVersionIncrement,
                                boolean lazyPropertiesAreUnfetched)

  Generates an appropriate EntityEntry instance and adds it to the event source's internal caches.

  Specified by:
    `addEntry` in interface `PersistenceContext`

### containsCollection

    public boolean containsCollection(PersistentCollection collection)

  Description copied from interface: `PersistenceContext`
  Is the given collection associated with this persistence context?

  Specified by:
    `containsCollection` in interface `PersistenceContext`

### containsProxy

    public boolean containsProxy(Object entity)

  Description copied from interface: `PersistenceContext`
  Is the given proxy associated with this persistence context?

  Specified by:
    `containsProxy` in interface `PersistenceContext`

### reassociateIfUninitializedProxy

    public boolean reassociateIfUninitializedProxy(Object value)
                                            throws MappingException

  Takes the given object and, if it represents a proxy, reassociates it with this event source.

  Specified by:
    `reassociateIfUninitializedProxy` in interface `PersistenceContext`
  Parameters:
    `value` - The possible proxy to be reassociated.
  Returns:
    Whether the passed value represented an actual proxy which got initialized.
  Throws:
    `MappingException`

### reassociateProxy

    public void reassociateProxy(Object value,
                                 Serializable id)
                          throws MappingException

  If a deleted entity instance is re-saved, and it has a proxy, we need to reset the identifier of the proxy

  Specified by:
    `reassociateProxy` in interface `PersistenceContext`
  Throws:
    `MappingException`

### unproxy

    public Object unproxy(Object maybeProxy)
                   throws HibernateException

  Get the entity instance underlying the given proxy, throwing an exception if the proxy is uninitialized. If the given object is not a proxy, simply return the argument.

  Specified by:
    `unproxy` in interface `PersistenceContext`
  Throws:
    `HibernateException`

### unproxyAndReassociate

    public Object unproxyAndReassociate(Object maybeProxy)
                                 throws HibernateException

  Possibly unproxy the given reference and reassociate it with the current session.

  Specified by:
    `unproxyAndReassociate` in interface `PersistenceContext`
  Parameters:
    `maybeProxy` - The reference to be unproxied if it currently represents a proxy.
  Returns:
    The unproxied instance.
  Throws:
    `HibernateException`

### checkUniqueness

    public void checkUniqueness(EntityKey key,
                                Object object)
                         throws HibernateException

  Attempts to check whether the given key represents an entity already loaded within the current session.

  Specified by:
    `checkUniqueness` in interface `PersistenceContext`
  Parameters:
    `object` - The entity reference against which to perform the uniqueness check.
  Throws:
    `HibernateException`

### narrowProxy

    public Object narrowProxy(Object proxy,
                              EntityPersister persister,
                              EntityKey key,
                              Object object)
                       throws HibernateException

  If the existing proxy is insufficiently "narrow" (derived), instantiate a new proxy and overwrite the registration of the old one. This breaks == and occurs only for "class" proxies rather than "interface" proxies. Also init the proxy to point to the given target implementation if necessary.

  Specified by:
    `narrowProxy` in interface `PersistenceContext`
  Parameters:
    `proxy` - The proxy instance to be narrowed.
    `persister` - The persister for the proxied entity.
    `key` - The internal cache key for the proxied entity.
    `object` - (optional) the actual proxied entity instance.
  Returns:
    An appropriately narrowed instance.
  Throws:
    `HibernateException`

### proxyFor

    public Object proxyFor(EntityPersister persister,
                           EntityKey key,
                           Object impl)
                    throws HibernateException

  Return the existing proxy associated with the given `EntityKey`, or the third argument (the entity associated with the key) if no proxy exists. Init the proxy to the target implementation, if necessary.

  Specified by:
    `proxyFor` in interface `PersistenceContext`
  Throws:
    `HibernateException`

### proxyFor

    public Object proxyFor(Object impl)
                    throws HibernateException

  Return the existing proxy associated with the given `EntityKey`, or the argument (the entity associated with the key) if no proxy exists. (slower than the form above)

  Specified by:
    `proxyFor` in interface `PersistenceContext`
  Throws:
    `HibernateException`

### getCollectionOwner

    public Object getCollectionOwner(Serializable key,
                                     CollectionPersister collectionPersister)
                              throws MappingException

  Get the entity that owns this persistent collection

  Specified by:
    `getCollectionOwner` in interface `PersistenceContext`
  Throws:
    `MappingException`

### getLoadedCollectionOwnerOrNull

    public Object getLoadedCollectionOwnerOrNull(PersistentCollection collection)

  Get the entity that owned this persistent collection when it was loaded

  Specified by:
    `getLoadedCollectionOwnerOrNull` in interface `PersistenceContext`
  Parameters:
    `collection` - The persistent collection
  Returns:
    the owner, if its entity ID is available from the collection's loaded key and the owner entity is in the persistence context; otherwise, returns null

### getLoadedCollectionOwnerIdOrNull

    public Serializable getLoadedCollectionOwnerIdOrNull(PersistentCollection collection)

  Get the ID for the entity that owned this persistent collection when it was loaded

  Specified by:
    `getLoadedCollectionOwnerIdOrNull` in interface `PersistenceContext`
  Parameters:
    `collection` - The persistent collection
  Returns:
    the owner ID if available from the collection's loaded key; otherwise, returns null

### addUninitializedCollection

    public void addUninitializedCollection(CollectionPersister persister,
                                           PersistentCollection collection,
                                           Serializable id)

  add a collection we just loaded up (still needs initializing)

  Specified by:
    `addUninitializedCollection` in interface `PersistenceContext`

### addUninitializedDetachedCollection

    public void addUninitializedDetachedCollection(CollectionPersister persister,
                                                   PersistentCollection collection)

  add a detached uninitialized collection

  Specified by:
    `addUninitializedDetachedCollection` in interface `PersistenceContext`

### addNewCollection

    public void addNewCollection(CollectionPersister persister,
                                 PersistentCollection collection)
                          throws HibernateException

  Add a new collection (ie. a newly created one, just instantiated by the application, with no database state or snapshot)

  Specified by:
    `addNewCollection` in interface `PersistenceContext`
  Parameters:
    `collection` - The collection to be associated with the persistence context
  Throws:
    `HibernateException`

### addInitializedDetachedCollection

    public void addInitializedDetachedCollection(CollectionPersister collectionPersister,
                                                 PersistentCollection collection)
                                          throws HibernateException

  add an (initialized) collection that was created by another session and passed into update() (ie. one with a snapshot and existing state on the database)

  Specified by:
    `addInitializedDetachedCollection` in interface `PersistenceContext`
  Throws:
    `HibernateException`

### addInitializedCollection

    public CollectionEntry addInitializedCollection(CollectionPersister persister,
                                                    PersistentCollection collection,
                                                    Serializable id)
                                             throws HibernateException

  add a collection we just pulled out of the cache (does not need initializing)

  Specified by:
    `addInitializedCollection` in interface `PersistenceContext`
  Throws:
    `HibernateException`

### getCollection

    public PersistentCollection getCollection(CollectionKey collectionKey)

  Get the collection instance associated with the `CollectionKey`

  Specified by:
    `getCollection` in interface `PersistenceContext`

### addNonLazyCollection

    public void addNonLazyCollection(PersistentCollection collection)

  Register a collection for non-lazy loading at the end of the two-phase load

  Specified by:
    `addNonLazyCollection` in interface `PersistenceContext`

### initializeNonLazyCollections

    public void initializeNonLazyCollections()
                                      throws HibernateException

  Force initialization of all non-lazy collections encountered during the current two-phase load (actually, this is a no-op, unless this is the "outermost" load)

  Specified by:
    `initializeNonLazyCollections` in interface `PersistenceContext`
  Throws:
    `HibernateException`

### getCollectionHolder

    public PersistentCollection getCollectionHolder(Object array)

  Get the `PersistentCollection` object for an array

  Specified by:
    `getCollectionHolder` in interface `PersistenceContext`

### addCollectionHolder

    public void addCollectionHolder(PersistentCollection holder)

  Register a `PersistentCollection` object for an array. Associates a holder with an array - MUST be called after loading array, since the array instance is not created until endLoad().

  Specified by:
    `addCollectionHolder` in interface `PersistenceContext`

### removeCollectionHolder

    public PersistentCollection removeCollectionHolder(Object array)

  Description copied from interface: `PersistenceContext`
  Remove the mapping of collection to holder during eviction of the owning entity

  Specified by:
    `removeCollectionHolder` in interface `PersistenceContext`

### getSnapshot

    public Serializable getSnapshot(PersistentCollection coll)

  Get the snapshot of the pre-flush collection state

  Specified by:
    `getSnapshot` in interface `PersistenceContext`

### getCollectionEntryOrNull

    public CollectionEntry getCollectionEntryOrNull(Object collection)

  Get the collection entry for a collection passed to filter, which might be a collection wrapper, an array, or an unwrapped collection. Return null if there is no entry.

  Specified by:
    `getCollectionEntryOrNull` in interface `PersistenceContext`

### getProxy

    public Object getProxy(EntityKey key)

  Get an existing proxy by key

  Specified by:
    `getProxy` in interface `PersistenceContext`

### addProxy

    public void addProxy(EntityKey key,
                         Object proxy)

  Add a proxy to the session cache

  Specified by:
    `addProxy` in interface `PersistenceContext`

### removeProxy

    public Object removeProxy(EntityKey key)

  Remove a proxy from the session cache.

  Additionally, ensure that any load optimization references such as batch or subselect loading get cleaned up as well.

  Specified by:
    `removeProxy` in interface `PersistenceContext`
  Parameters:
    `key` - The key of the entity proxy to be removed
  Returns:
    The proxy reference.

### getNullifiableEntityKeys

    public HashSet getNullifiableEntityKeys()

  Retrieve the set of EntityKeys representing nullifiable references

  Specified by:
    `getNullifiableEntityKeys` in interface `PersistenceContext`

### getEntitiesByKey

    public Map getEntitiesByKey()

  Description copied from interface: `PersistenceContext`
  Get the mapping from key value to entity instance

  Specified by:
    `getEntitiesByKey` in interface `PersistenceContext`

### getEntityEntries

    public Map getEntityEntries()

  Description copied from interface: `PersistenceContext`
  Get the mapping from entity instance to entity entry

  Specified by:
    `getEntityEntries` in interface `PersistenceContext`

### getCollectionEntries

    public Map getCollectionEntries()

  Description copied from interface: `PersistenceContext`
  Get the mapping from collection instance to collection entry

  Specified by:
    `getCollectionEntries` in interface `PersistenceContext`

### getCollectionsByKey

    public Map getCollectionsByKey()

  Description copied from interface: `PersistenceContext`
  Get the mapping from collection key to collection instance

  Specified by:
    `getCollectionsByKey` in interface `PersistenceContext`

### getCascadeLevel

    public int getCascadeLevel()

  Do we already know that the entity does not exist in the database?

  Specified by:
    `getCascadeLevel` in interface `PersistenceContext`

### incrementCascadeLevel

    public int incrementCascadeLevel()

  Description copied from interface: `PersistenceContext`
  Called before cascading

  Specified by:
    `incrementCascadeLevel` in interface `PersistenceContext`

### decrementCascadeLevel

    public int decrementCascadeLevel()

  Description copied from interface: `PersistenceContext`
  Called after cascading

  Specified by:
    `decrementCascadeLevel` in interface `PersistenceContext`

### isFlushing

    public boolean isFlushing()

  Description copied from interface: `PersistenceContext`
  Is a flush cycle currently in process?

  Specified by:
    `isFlushing` in interface `PersistenceContext`

### setFlushing

    public void setFlushing(boolean flushing)

  Description copied from interface: `PersistenceContext`
  Called before and after the flushcycle

  Specified by:
    `setFlushing` in interface `PersistenceContext`

### beforeLoad

    public void beforeLoad()

  Call this before begining a two-phase load

  Specified by:
    `beforeLoad` in interface `PersistenceContext`

### afterLoad

    public void afterLoad()

  Call this after finishing a two-phase load

  Specified by:
    `afterLoad` in interface `PersistenceContext`

### toString

    public String toString()

  Returns a string representation of the object.

  Specified by:
    `toString` in interface `PersistenceContext`
  Overrides:
    `toString` in class `Object`
  Returns:
    a string representation of the object.

### getOwnerId

    public Serializable getOwnerId(String entity,
                                   String property,
                                   Object childEntity,
                                   Map mergeMap)

  Search the persistence context for an owner for the child object, given a collection role. If `mergeMap` is non-null, also check the detached graph being merged for a parent.

  Specified by:
    `getOwnerId` in interface `PersistenceContext`

### getIndexInOwner

    public Object getIndexInOwner(String entity,
                                  String property,
                                  Object childEntity,
                                  Map mergeMap)

  Search the persistence context for an index of the child object, given a collection role

  Specified by:
    `getIndexInOwner` in interface `PersistenceContext`

### addNullProperty

    public void addNullProperty(EntityKey ownerKey,
                                String propertyName)

  Record the fact that the association belonging to the keyed entity is null.

  Specified by:
    `addNullProperty` in interface `PersistenceContext`

### isPropertyNull

    public boolean isPropertyNull(EntityKey ownerKey,
                                  String propertyName)

  Is the association property belonging to the keyed entity null?

  Specified by:
    `isPropertyNull` in interface `PersistenceContext`

### setReadOnly

    public void setReadOnly(Object entity,
                            boolean readOnly)

  Description copied from interface: `PersistenceContext`
  Set the object to read only and discard it's snapshot

  Specified by:
    `setReadOnly` in interface `PersistenceContext`

### replaceDelayedEntityIdentityInsertKeys

    public void replaceDelayedEntityIdentityInsertKeys(EntityKey oldKey,
                                                       Serializable generatedId)

  Specified by:
    `replaceDelayedEntityIdentityInsertKeys` in interface `PersistenceContext`

### serialize

    public void serialize(ObjectOutputStream oos)
                   throws IOException

  Used by the owning session to explicitly control serialization of the persistence context.

  Parameters:
    `oos` - The stream to which the persistence context should get written
  Throws:
    `IOException` - serialization errors.

### deserialize

    public static StatefulPersistenceContext deserialize(ObjectInputStream ois,
                                                         SessionImplementor session)
                                                  throws IOException,
                                                         ClassNotFoundException

  Throws:
    `IOException`
    `ClassNotFoundException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD