Top Description Fields Constructors Methods
org.hibernate.engine.internal

public final Class Cascade

extends Object
Class Inheritance
Imports
java.util.ArrayList, .Collection, .Iterator, .List, org.hibernate.HibernateException, org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeLoadingInterceptor, org.hibernate.collection.spi.PersistentCollection, org.hibernate.engine.spi.CascadeStyle, .CascadingAction, .CollectionEntry, .EntityEntry, .PersistenceContext, .Status, org.hibernate.event.spi.DeleteContext, .EventSource, org.hibernate.internal.CoreLogging, .CoreMessageLogger, org.hibernate.persister.collection.CollectionPersister, org.hibernate.persister.entity.EntityPersister, org.hibernate.type.AssociationType, .CollectionType, .ComponentType, .CompositeType, .EntityType, .Type

Delegate responsible for, in conjunction with the various actions, implementing cascade processing.
Author
Gavin King
See Also
CascadingAction

Field Summary

Modifier and TypeField and Description
private static final CoreMessageLogger

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static <T> void
cascade(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final EntityPersister
The parent's entity persister
persister
,
final Object
The parent reference.
parent
)

Cascade an action from the parent entity instance to all its children.

public static <T> void
cascade(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final EntityPersister
The parent's entity persister
persister
,
final Object
The parent reference.
parent
,
final T
Anything ;) Typically some form of cascade-local cache which is specific to each CascadingAction type
anything
)

Cascade an action from the parent entity instance to all its children.

private static <T> void
cascadeAssociation(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final Type type, final CascadeStyle style, final T anything, final boolean isCascadeDeleteEnabled)

private static boolean
cascadeAssociationNow(final CascadePoint cascadePoint, AssociationType associationType)

private static <T> void
cascadeCollection(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final CascadeStyle style, final T anything, final CollectionType type)

Cascade an action to a collection

private static <T> void
cascadeCollectionElements(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final CollectionType collectionType, final CascadeStyle style, final Type elemType, final T anything, final boolean isCascadeDeleteEnabled)

Cascade to the collection elements

private static <T> void
cascadeComponent(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final CompositeType componentType, final T anything)

private static <T> void
cascadeLogicalOneToOneOrphanRemoval(final CascadingAction<T> action, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final Type type, final CascadeStyle style, final String propertyName, final boolean isCascadeDeleteEnabled)

potentially we need to handle orphan deletes for one-to-ones here...

private static <T> void
cascadeProperty(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, List<String> componentPath, final Object parent, final Object child, final Type type, final CascadeStyle style, final String propertyName, final T anything, final boolean isCascadeDeleteEnabled)

Cascade an action to the child or children

private static <T> void
cascadeToOne(final CascadingAction<T> action, final EventSource eventSource, final Object parent, final Object child, final Type type, final CascadeStyle style, final T anything, final boolean isCascadeDeleteEnabled)

Cascade an action to a to-one association or any type

private static void
deleteOrphans(EventSource eventSource, String entityName, PersistentCollection<?> pc)

Delete any entities that were removed from the collection

private static boolean

Returns:

True if the attribute represents a logical one to one association
isLogicalOneToOne
(Type
The type representing the attribute metadata
type
)

Check if the association is a one to one in the logical model (either a shared-pk or unique fk).

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

LOGback to summary
private static final CoreMessageLogger LOG

Constructor Detail

Cascadeback to summary
private Cascade()

Method Detail

cascadeback to summary
public static <T> void cascade(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final EntityPersister persister, final Object parent) throws HibernateException

Cascade an action from the parent entity instance to all its children.

Parameters
persister:EntityPersister

The parent's entity persister

parent:Object

The parent reference.

cascadeback to summary
public static <T> void cascade(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final EntityPersister persister, final Object parent, final T anything) throws HibernateException

Cascade an action from the parent entity instance to all its children. This form is typically called from within cascade actions.

Parameters
persister:EntityPersister

The parent's entity persister

parent:Object

The parent reference.

anything:T

Anything ;) Typically some form of cascade-local cache which is specific to each CascadingAction type

cascadeAssociationback to summary
private static <T> void cascadeAssociation(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final Type type, final CascadeStyle style, final T anything, final boolean isCascadeDeleteEnabled)
cascadeAssociationNowback to summary
private static boolean cascadeAssociationNow(final CascadePoint cascadePoint, AssociationType associationType)
cascadeCollectionback to summary
private static <T> void cascadeCollection(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final CascadeStyle style, final T anything, final CollectionType type)

Cascade an action to a collection

cascadeCollectionElementsback to summary
private static <T> void cascadeCollectionElements(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final CollectionType collectionType, final CascadeStyle style, final Type elemType, final T anything, final boolean isCascadeDeleteEnabled) throws HibernateException

Cascade to the collection elements

cascadeComponentback to summary
private static <T> void cascadeComponent(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final CompositeType componentType, final T anything)
cascadeLogicalOneToOneOrphanRemovalback to summary
private static <T> void cascadeLogicalOneToOneOrphanRemoval(final CascadingAction<T> action, final EventSource eventSource, final List<String> componentPath, final Object parent, final Object child, final Type type, final CascadeStyle style, final String propertyName, final boolean isCascadeDeleteEnabled) throws HibernateException

potentially we need to handle orphan deletes for one-to-ones here...

cascadePropertyback to summary
private static <T> void cascadeProperty(final CascadingAction<T> action, final CascadePoint cascadePoint, final EventSource eventSource, List<String> componentPath, final Object parent, final Object child, final Type type, final CascadeStyle style, final String propertyName, final T anything, final boolean isCascadeDeleteEnabled) throws HibernateException

Cascade an action to the child or children

cascadeToOneback to summary
private static <T> void cascadeToOne(final CascadingAction<T> action, final EventSource eventSource, final Object parent, final Object child, final Type type, final CascadeStyle style, final T anything, final boolean isCascadeDeleteEnabled)

Cascade an action to a to-one association or any type

deleteOrphansback to summary
private static void deleteOrphans(EventSource eventSource, String entityName, PersistentCollection<?> pc)

Delete any entities that were removed from the collection

isLogicalOneToOneback to summary
private static boolean isLogicalOneToOne(Type type)

Check if the association is a one to one in the logical model (either a shared-pk or unique fk).

Parameters
type:Type

The type representing the attribute metadata

Returns:boolean

True if the attribute represents a logical one to one association