org.hibernate.engine
Class CascadingAction
java.lang.Object
org.hibernate.engine.CascadingAction
public abstract class CascadingAction
extends java.lang.Object
A session action that may be cascaded from parent entity to its children
abstract void | cascade(EventSource session, Object child, String entityName, Object anything, boolean isCascadeDeleteEnabled) - Cascade the action to the child object.
|
abstract boolean | deleteOrphans() - Does this action potentially extrapolate to orphan deletes?
|
abstract Iterator | getCascadableChildrenIterator(EventSource session, CollectionType collectionType, Object collection) - Given a collection, get an iterator of the children upon which the
current cascading action should be visited.
|
static Iterator | getLoadedElementsIterator(SessionImplementor session, CollectionType collectionType, Object collection) - Iterate just the elements of the collection that are already there.
|
void | noCascade(EventSource session, Object child, Object parent, EntityPersister persister, int propertyIndex) - Called (in the case of
requiresNoCascadeChecking() returning true) to validate
that no cascade on the given property is considered a valid semantic.
|
boolean | performOnLazyProperty() - Should this action be performed (or noCascade consulted) in the case of lazy properties.
|
boolean | requiresNoCascadeChecking() - Does the specified cascading action require verification of no cascade validity?
|
PERSIST_ON_FLUSH
public static final CascadingAction PERSIST_ON_FLUSH
Execute persist during flush time
cascade
public abstract void cascade(EventSource session,
Object child,
String entityName,
Object anything,
boolean isCascadeDeleteEnabled)
throws HibernateException
Cascade the action to the child object.
session
- The session within which the cascade is occuring.child
- The child to which cascading should be performed.entityName
- The child's entity nameanything
- Anything ;) Typically some form of cascade-local cache
which is specific to each CascadingAction typeisCascadeDeleteEnabled
- Are cascading deletes enabled.
deleteOrphans
public abstract boolean deleteOrphans()
Does this action potentially extrapolate to orphan deletes?
- True if this action can lead to deletions of orphans.
getCascadableChildrenIterator
public abstract Iterator getCascadableChildrenIterator(EventSource session,
CollectionType collectionType,
Object collection)
Given a collection, get an iterator of the children upon which the
current cascading action should be visited.
session
- The session within which the cascade is occuring.collectionType
- The mapping type of the collection.collection
- The collection instance.
getLoadedElementsIterator
public static Iterator getLoadedElementsIterator(SessionImplementor session,
CollectionType collectionType,
Object collection)
Iterate just the elements of the collection that are already there. Don't load
any new elements from the database.
noCascade
public void noCascade(EventSource session,
Object child,
Object parent,
EntityPersister persister,
int propertyIndex)
Called (in the case of
requiresNoCascadeChecking()
returning true) to validate
that no cascade on the given property is considered a valid semantic.
session
- The session witin which the cascade is occurring.child
- The property valueparent
- The property value ownerpersister
- The entity persister for the ownerpropertyIndex
- The index of the property within the owner.
performOnLazyProperty
public boolean performOnLazyProperty()
Should this action be performed (or noCascade consulted) in the case of lazy properties.
requiresNoCascadeChecking
public boolean requiresNoCascadeChecking()
Does the specified cascading action require verification of no cascade validity?
- True if this action requires no-cascade verification; false otherwise.