Package org.hibernate.engine.spi
Class CollectionEntry
- java.lang.Object
-
- org.hibernate.engine.spi.CollectionEntry
-
- All Implemented Interfaces:
Serializable
public final class CollectionEntry extends Object implements Serializable
We need an entry to tell us all about the current state of a collection with respect to its persistent state- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description CollectionEntry(PersistentCollection<?> collection, SessionFactoryImplementor factory)For initialized detached collectionsCollectionEntry(PersistentCollection<?> collection, CollectionPersister loadedPersister, Object loadedKey, boolean ignore)For collections just loaded from the databaseCollectionEntry(CollectionPersister loadedPersister, Object loadedKey)For uninitialized detached collectionsCollectionEntry(CollectionPersister persister, PersistentCollection<?> collection)For newly wrapped collections, or dereferenced collection wrappers
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterAction(PersistentCollection<?> collection)Called after execution of an actionstatic CollectionEntrydeserialize(ObjectInputStream ois, SessionImplementor session)Custom deserialization routine used during deserialization of a Session/PersistenceContext for increased performance.@Nullable ObjectgetCurrentKey()This is only available late during the flush cycle@Nullable CollectionPersistergetCurrentPersister()@Nullable ObjectgetKey()@Nullable ObjectgetLoadedKey()@Nullable CollectionPersistergetLoadedPersister()This is only available late during the flush cycleCollection<?>getOrphans(String entityName, PersistentCollection<?> collection)Get the collection orphans (entities which were removed from the collection)@Nullable StringgetRole()@Nullable SerializablegetSnapshot()booleanisDorecreate()booleanisDoremove()booleanisDoupdate()booleanisIgnore()booleanisProcessed()booleanisReached()booleanisSnapshotEmpty(PersistentCollection<?> collection)voidpostFlush(PersistentCollection<?> collection)Called after a successful flushvoidpostInitialize(PersistentCollection<?> collection, SharedSessionContractImplementor session)voidpreFlush(PersistentCollection<?> collection)voidresetStoredSnapshot(PersistentCollection<?> collection, Serializable storedSnapshot)Reset the stored snapshot for both the persistent collection and this collection entry.voidserialize(ObjectOutputStream oos)Custom serialization routine used during serialization of a Session/PersistenceContext for increased performance.voidsetCurrentKey(@Nullable Object currentKey)voidsetCurrentPersister(@Nullable CollectionPersister currentPersister)voidsetDorecreate(boolean dorecreate)voidsetDoremove(boolean doremove)voidsetDoupdate(boolean doupdate)voidsetProcessed(boolean processed)voidsetReached(boolean reached)voidsetRole(@Nullable String role)StringtoString()booleanwasDereferenced()
-
-
-
Constructor Detail
-
CollectionEntry
public CollectionEntry(CollectionPersister persister, PersistentCollection<?> collection)
For newly wrapped collections, or dereferenced collection wrappers
-
CollectionEntry
public CollectionEntry(PersistentCollection<?> collection, CollectionPersister loadedPersister, Object loadedKey, boolean ignore)
For collections just loaded from the database
-
CollectionEntry
public CollectionEntry(CollectionPersister loadedPersister, Object loadedKey)
For uninitialized detached collections
-
CollectionEntry
public CollectionEntry(PersistentCollection<?> collection, SessionFactoryImplementor factory)
For initialized detached collections
-
-
Method Detail
-
preFlush
public void preFlush(PersistentCollection<?> collection) throws HibernateException
- Throws:
HibernateException
-
postInitialize
public void postInitialize(PersistentCollection<?> collection, SharedSessionContractImplementor session) throws HibernateException
- Throws:
HibernateException
-
postFlush
public void postFlush(PersistentCollection<?> collection) throws HibernateException
Called after a successful flush- Throws:
HibernateException
-
afterAction
public void afterAction(PersistentCollection<?> collection)
Called after execution of an action
-
getKey
public @Nullable Object getKey()
-
getRole
public @Nullable String getRole()
-
getSnapshot
public @Nullable Serializable getSnapshot()
-
resetStoredSnapshot
public void resetStoredSnapshot(PersistentCollection<?> collection, Serializable storedSnapshot)
Reset the stored snapshot for both the persistent collection and this collection entry. Used during the merge of detached collections.- Parameters:
collection- the persistentcollection to be updatedstoredSnapshot- the new stored snapshot
-
wasDereferenced
public boolean wasDereferenced()
-
isReached
public boolean isReached()
-
setReached
public void setReached(boolean reached)
-
isProcessed
public boolean isProcessed()
-
setProcessed
public void setProcessed(boolean processed)
-
isDoupdate
public boolean isDoupdate()
-
setDoupdate
public void setDoupdate(boolean doupdate)
-
isDoremove
public boolean isDoremove()
-
setDoremove
public void setDoremove(boolean doremove)
-
isDorecreate
public boolean isDorecreate()
-
setDorecreate
public void setDorecreate(boolean dorecreate)
-
isIgnore
public boolean isIgnore()
-
getCurrentPersister
public @Nullable CollectionPersister getCurrentPersister()
-
setCurrentPersister
public void setCurrentPersister(@Nullable CollectionPersister currentPersister)
-
getCurrentKey
public @Nullable Object getCurrentKey()
This is only available late during the flush cycle
-
setCurrentKey
public void setCurrentKey(@Nullable Object currentKey)
-
getLoadedPersister
public @Nullable CollectionPersister getLoadedPersister()
This is only available late during the flush cycle
-
getLoadedKey
public @Nullable Object getLoadedKey()
-
setRole
public void setRole(@Nullable String role)
-
getOrphans
public Collection<?> getOrphans(String entityName, PersistentCollection<?> collection) throws HibernateException
Get the collection orphans (entities which were removed from the collection)- Throws:
HibernateException
-
isSnapshotEmpty
public boolean isSnapshotEmpty(PersistentCollection<?> collection)
-
serialize
public void serialize(ObjectOutputStream oos) throws IOException
Custom serialization routine used during serialization of a Session/PersistenceContext for increased performance.- Parameters:
oos- The stream to which we should write the serial data.- Throws:
IOException
-
deserialize
public static CollectionEntry deserialize(ObjectInputStream ois, SessionImplementor session) throws IOException, ClassNotFoundException
Custom deserialization routine used during deserialization of a Session/PersistenceContext for increased performance.- Parameters:
ois- The stream from which to read the entry.session- The session being deserialized.- Returns:
- The deserialized CollectionEntry
- Throws:
IOExceptionClassNotFoundException
-
-