## org.hibernate.engine.spi
Class CascadingAction

    java.lang.Object
      org.hibernate.engine.spi.CascadingAction

Direct Known Subclasses:
  EJB3CascadingAction

    public abstract class CascadingAction

extends Object

A session action that may be cascaded from parent entity to its children

Field Summary
`static CascadingAction` `DELETE`
`static CascadingAction` `EVICT`
`static CascadingAction` `LOCK`
`static CascadingAction` `MERGE`
`static CascadingAction` `PERSIST`
`static CascadingAction` `PERSIST_ON_FLUSH` Execute persist during flush time
`static CascadingAction` `REFRESH`
`static CascadingAction` `REPLICATE`
`static CascadingAction` `SAVE_UPDATE`

Constructor Summary
`CascadingAction()`

Method Summary
`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?

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

Field Detail

### DELETE

    public static final CascadingAction DELETE

See Also:
  `Session.delete(Object)`

### LOCK

    public static final CascadingAction LOCK

See Also:
  `Session.lock(Object, LockMode)`

### REFRESH

    public static final CascadingAction REFRESH

See Also:
  `Session.refresh(Object)`

### EVICT

    public static final CascadingAction EVICT

See Also:
  `Session.evict(Object)`

### SAVE_UPDATE

    public static final CascadingAction SAVE_UPDATE

See Also:
  `Session.saveOrUpdate(Object)`

### MERGE

    public static final CascadingAction MERGE

See Also:
  `Session.merge(Object)`

### PERSIST

    public static final CascadingAction PERSIST

See Also:
  `Session.persist(Object)`

### PERSIST_ON_FLUSH

    public static final CascadingAction PERSIST_ON_FLUSH

  Execute persist during flush time

  See Also:
    `Session.persist(Object)`

### REPLICATE

    public static final CascadingAction REPLICATE

See Also:
  `Session.replicate(Object, org.hibernate.ReplicationMode)`

Constructor Detail

### CascadingAction

    public CascadingAction()

Method Detail

### cascade

    public abstract void cascade(EventSource session,
                                 Object child,
                                 String entityName,
                                 Object anything,
                                 boolean isCascadeDeleteEnabled)
                          throws HibernateException

  Cascade the action to the child object.

  Parameters:
    `session` - The session within which the cascade is occuring.
    `child` - The child to which cascading should be performed.
    `entityName` - The child's entity name
    `anything` - Anything ;) Typically some form of cascade-local cache which is specific to each CascadingAction type
    `isCascadeDeleteEnabled` - Are cascading deletes enabled.
  Throws:
    `HibernateException`

### 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.

  Parameters:
    `session` - The session within which the cascade is occuring.
    `collectionType` - The mapping type of the collection.
    `collection` - The collection instance.
  Returns:
    The children iterator.

### deleteOrphans

    public abstract boolean deleteOrphans()

  Does this action potentially extrapolate to orphan deletes?

  Returns:
    True if this action can lead to deletions of orphans.

### requiresNoCascadeChecking

    public boolean requiresNoCascadeChecking()

  Does the specified cascading action require verification of no cascade validity?

  Returns:
    True if this action requires no-cascade verification; false otherwise.

### 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.

  Parameters:
    `session` - The session witin which the cascade is occurring.
    `child` - The property value
    `parent` - The property value owner
    `persister` - The entity persister for the owner
    `propertyIndex` - 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.

### 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.

Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.