Package org.hibernate.engine.internal
Class EntityEntryContext
- java.lang.Object
-
- org.hibernate.engine.internal.EntityEntryContext
-
public class EntityEntryContext extends Object
Defines a context for maintaining the relation between an entity associated with the Session ultimately owning this EntityEntryContext instance and that entity's corresponding EntityEntry. 2 approaches are supported:- the entity->EntityEntry association is maintained in a Map within this class
-
the EntityEntry is injected into the entity via it implementing the
ManagedEntitycontract, either directly or through bytecode enhancement.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceEntityEntryContext.EntityEntryCrossRefUsed in building thereentrantSafeEntityEntries()entries
-
Constructor Summary
Constructors Constructor Description EntityEntryContext(PersistenceContext persistenceContext)Constructs a EntityEntryContext
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEntityEntry(Object entity, EntityEntry entityEntry)Adds the entity and entry to this context, associating them togethervoidclear()Clear this context of all managed entitiesstatic EntityEntryContextdeserialize(ObjectInputStream ois, StatefulPersistenceContext rtn)JDK serialization hook for deserializingvoiddowngradeLocks()Down-grade locks to NONE for all entities in this contextEntityEntrygetEntityEntry(Object entity)Retrieve the associated EntityEntry for the entityintgetNumberOfManagedEntities()booleanhasEntityEntry(Object entity)Does this entity exist in this context, associated with an EntityEntry?Map.Entry<Object,EntityEntry>[]reentrantSafeEntityEntries()The main bugaboo with IdentityMap that warranted this class in the first place.EntityEntryremoveEntityEntry(Object entity)Remove an entity from the context, returning the EntityEntry which was associated with itvoidserialize(ObjectOutputStream oos)JDK serialization hook for serializing
-
-
-
Constructor Detail
-
EntityEntryContext
public EntityEntryContext(PersistenceContext persistenceContext)
Constructs a EntityEntryContext
-
-
Method Detail
-
addEntityEntry
public void addEntityEntry(Object entity, EntityEntry entityEntry)
Adds the entity and entry to this context, associating them together- Parameters:
entity- The entityentityEntry- The entry
-
hasEntityEntry
public boolean hasEntityEntry(Object entity)
Does this entity exist in this context, associated with an EntityEntry?- Parameters:
entity- The entity to check- Returns:
trueif it is associated with this context
-
getEntityEntry
public EntityEntry getEntityEntry(Object entity)
Retrieve the associated EntityEntry for the entity- Parameters:
entity- The entity to retrieve the EntityEntry for- Returns:
- The associated EntityEntry
-
removeEntityEntry
public EntityEntry removeEntityEntry(Object entity)
Remove an entity from the context, returning the EntityEntry which was associated with it- Parameters:
entity- The entity to remove- Returns:
- Tjee EntityEntry
-
reentrantSafeEntityEntries
public Map.Entry<Object,EntityEntry>[] reentrantSafeEntityEntries()
The main bugaboo with IdentityMap that warranted this class in the first place. Return an array of all the entity/EntityEntry pairs in this context. The array is to make sure that the iterators built off of it are safe from concurrency/reentrancy- Returns:
- The safe array
-
clear
public void clear()
Clear this context of all managed entities
-
downgradeLocks
public void downgradeLocks()
Down-grade locks to NONE for all entities in this context
-
serialize
public void serialize(ObjectOutputStream oos) throws IOException
JDK serialization hook for serializing- Parameters:
oos- The stream to write ourselves to- Throws:
IOException- Indicates an IO exception accessing the given stream
-
deserialize
public static EntityEntryContext deserialize(ObjectInputStream ois, StatefulPersistenceContext rtn) throws IOException, ClassNotFoundException
JDK serialization hook for deserializing- Parameters:
ois- The stream to read ourselves fromrtn- The persistence context we belong to- Returns:
- The deserialized EntityEntryContext
- Throws:
IOException- Indicates an IO exception accessing the given streamClassNotFoundException- Problem reading stream data
-
getNumberOfManagedEntities
public int getNumberOfManagedEntities()
-
-