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
ManagedEntity
contract, either directly or through bytecode enhancement.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
EntityEntryContext.EntityEntryCrossRef
Used 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 void
addEntityEntry(Object entity, EntityEntry entityEntry)
Adds the entity and entry to this context, associating them togethervoid
clear()
Clear this context of all managed entitiesstatic EntityEntryContext
deserialize(ObjectInputStream ois, StatefulPersistenceContext rtn)
JDK serialization hook for deserializingvoid
downgradeLocks()
Down-grade locks to NONE for all entities in this contextEntityEntry
getEntityEntry(Object entity)
Retrieve the associated EntityEntry for the entityint
getNumberOfManagedEntities()
boolean
hasEntityEntry(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.EntityEntry
removeEntityEntry(Object entity)
Remove an entity from the context, returning the EntityEntry which was associated with itvoid
serialize(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:
true
if 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()
-
-