/** * Cascade an action from the parent entity instance to all its children. * * @param persister The parent's entity persister * @param parent The parent reference. * @throws HibernateException */ public static void cascade( final CascadingAction action, final CascadePoint cascadePoint, final EventSource eventSource, final EntityPersister persister, final Object parent) throws HibernateException { cascade( action, cascadePoint, eventSource, persister, parent, null ); }
if ( type.isAssociationType() ) { final AssociationType associationType = (AssociationType) type; if ( cascadeAssociationNow( cascadePoint, associationType ) ) { cascadeAssociation( action, cascadePoint, cascadeComponent( action, cascadePoint, cascadeLogicalOneToOneOrphanRemoval( action, eventSource,
private static void cascadeAssociation( final CascadingAction action, final CascadePoint cascadePoint, final EventSource eventSource, final int componentPathStackDepth, final Object parent, final Object child, final Type type, final CascadeStyle style, final Object anything, final boolean isCascadeDeleteEnabled) { if ( type.isEntityType() || type.isAnyType() ) { cascadeToOne( action, eventSource, parent, child, type, style, anything, isCascadeDeleteEnabled ); } else if ( type.isCollectionType() ) { cascadeCollection( action, cascadePoint, eventSource, componentPathStackDepth, parent, child, style, anything, (CollectionType) type ); } }
cascadeProperty( action, cascadePoint, deleteOrphans( eventSource, entityName, (PersistentCollection) child );
private void cascadeAfterReplicate( Object entity, EntityPersister persister, ReplicationMode replicationMode, EventSource source) { source.getPersistenceContext().incrementCascadeLevel(); try { new Cascade( CascadingAction.REPLICATE, Cascade.AFTER_UPDATE, source ) .cascade( persister, entity, replicationMode ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
if ( type.isAssociationType() ) { AssociationType associationType = (AssociationType) type; if ( cascadeAssociationNow( associationType ) ) { cascadeAssociation( parent, child, cascadeComponent( parent, child, (CompositeType) type, propertyName, anything ); if ( isLogicalOneToOne( type ) ) {
cascadeProperty( action, cascadePoint,
child = persister.getPropertyValue( parent, i ); cascadeProperty( action, cascadePoint, cascadeLogicalOneToOneOrphanRemoval( action, eventSource,
cascadeCollectionElements( action, elementsCascadePoint,
if ( isLogicalOneToOne( type ) ) {
private void cascadeAfterReplicate( Object entity, EntityPersister persister, ReplicationMode replicationMode, EventSource source) { source.getPersistenceContext().incrementCascadeLevel(); try { new Cascade( CascadingAction.REPLICATE, Cascade.AFTER_UPDATE, source ) .cascade( persister, entity, replicationMode ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
if ( type.isAssociationType() ) { AssociationType associationType = (AssociationType) type; if ( cascadeAssociationNow( associationType ) ) { cascadeAssociation( parent, child, cascadeComponent( parent, child, (CompositeType) type, propertyName, anything ); if ( isLogicalOneToOne( type ) ) {
cascadeProperty( parent, iter.next(), deleteOrphans( entityName, (PersistentCollection) child );
private void cascadeComponent( final Object parent, final Object child, final CompositeType componentType, final String componentPropertyName, final Object anything) { componentPathStack.push( componentPropertyName ); Object[] children = componentType.getPropertyValues( child, eventSource ); Type[] types = componentType.getSubtypes(); for ( int i=0; i<types.length; i++ ) { final CascadeStyle componentPropertyStyle = componentType.getCascadeStyle(i); final String subPropertyName = componentType.getPropertyNames()[i]; if ( componentPropertyStyle.doCascade(action) ) { cascadeProperty( parent, children[i], types[i], componentPropertyStyle, subPropertyName, anything, false ); } } componentPathStack.pop(); }
child = descriptor.getPropertyValue( parent, i ); cascadeProperty( action, cascadePoint, cascadeLogicalOneToOneOrphanRemoval( action, eventSource,
/** * Cascade an action to a collection */ private void cascadeCollection( final Object parent, final Object child, final CascadeStyle style, final Object anything, final CollectionType type) { CollectionPersister persister = eventSource.getFactory() .getCollectionPersister( type.getRole() ); Type elemType = persister.getElementType(); final int oldCascadeTo = cascadeTo; if ( cascadeTo==AFTER_INSERT_BEFORE_DELETE) { cascadeTo = AFTER_INSERT_BEFORE_DELETE_VIA_COLLECTION; } //cascade to current collection elements if ( elemType.isEntityType() || elemType.isAnyType() || elemType.isComponentType() ) { cascadeCollectionElements( parent, child, type, style, elemType, anything, persister.isCascadeDeleteEnabled() ); } cascadeTo = oldCascadeTo; }
if ( isLogicalOneToOne( attribute ) ) {
private void cascadeOnFlush(EventSource session, EntityPersister persister, Object object, Object anything) throws HibernateException { session.getPersistenceContext().incrementCascadeLevel(); try { new Cascade( getCascadingAction(), Cascade.BEFORE_FLUSH, session ) .cascade( persister, object, anything ); } finally { session.getPersistenceContext().decrementCascadeLevel(); } }
private void cascadeAfterReplicate( Object entity, EntityPersister persister, ReplicationMode replicationMode, EventSource source) { source.getPersistenceContext().incrementCascadeLevel(); try { Cascade.cascade( CascadingActions.REPLICATE, CascadePoint.AFTER_UPDATE, source, persister, entity, replicationMode ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
if ( child != null ) { if ( JoinablePersistentAttribute.class.isInstance( attribute ) ) { if ( cascadeAssociationNow( cascadePoint, (JoinablePersistentAttribute) attribute ) ) { cascadeAssociation( action, cascadePoint, cascadeComponent( action, cascadePoint, cascadeLogicalOneToOneOrphanRemoval( action, eventSource,