/** * Perform any cascades needed as part of this copy event. * * @param source The merge event being processed. * @param persister The persister of the entity being copied. * @param entity The entity being copied. * @param copyCache A cache of already copied instance. */ protected void cascadeOnMerge( final EventSource source, final EntityPersister persister, final Object entity, final Map copyCache ) { source.getPersistenceContext().incrementCascadeLevel(); try { new Cascade( getCascadeAction(), Cascade.BEFORE_MERGE, source ) .cascade(persister, entity, copyCache); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
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(); } }
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(); } }
/** * Handles the calls needed to perform cascades as part of an update request * for the given entity. * * @param event The event currently being processed. * @param persister The defined persister for the entity being updated. * @param entity The entity being updated. */ private void cascadeOnUpdate(SaveOrUpdateEvent event, EntityPersister persister, Object entity) { SessionImplementor source = event.getSession(); source.getPersistenceContext().incrementCascadeLevel(); try { Cascades.cascade( source, persister, entity, Cascades.ACTION_SAVE_UPDATE, Cascades.CASCADE_AFTER_UPDATE ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
private void cascadeOnFlush(SessionImplementor session, EntityPersister persister, Object object) throws HibernateException { session.getPersistenceContext().incrementCascadeLevel(); try { Cascades.cascade( session, persister, object, getCascadingAction(), Cascades.CASCADE_BEFORE_FLUSH, getAnything() ); } finally { session.getPersistenceContext().decrementCascadeLevel(); } }
private void cascadeOnLock(LockEvent event, EntityPersister persister, Object entity) { EventSource source = event.getSession(); source.getPersistenceContext().incrementCascadeLevel(); try { new Cascade(CascadingAction.LOCK, Cascade.AFTER_LOCK, source) .cascade( persister, entity, event.getLockMode() ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
/** * Handles the calls needed to perform cascades as part of an update request * for the given entity. * * @param event The event currently being processed. * @param persister The defined persister for the entity being updated. * @param entity The entity being updated. */ private void cascadeOnUpdate(SaveOrUpdateEvent event, EntityPersister persister, Object entity) { EventSource source = event.getSession(); source.getPersistenceContext().incrementCascadeLevel(); try { new Cascade(CascadingAction.SAVE_UPDATE, Cascade.AFTER_UPDATE, source) .cascade(persister, entity); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
private void cascadeOnLock(LockEvent event, EntityPersister persister, Object entity) { SessionImplementor source = event.getSession(); source.getPersistenceContext().incrementCascadeLevel(); try { Cascades.cascade( source, persister, entity, Cascades.ACTION_LOCK, Cascades.CASCADE_AFTER_LOCK, event.getLockMode() ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
/** * Handles the calls needed to perform pre-save cascades for the given entity. * @param source The session from whcih the save event originated. * @param persister The entity's persister instance. * @param entity The entity to be saved. * @throws HibernateException */ protected void cascadeBeforeSave( SessionImplementor source, EntityPersister persister, Object entity, Object anything) throws HibernateException { // cascade-save to many-to-one BEFORE the parent is saved source.getPersistenceContext().incrementCascadeLevel(); try { Cascades.cascade( source, persister, entity, getCascadeAction(), Cascades.CASCADE_BEFORE_INSERT_AFTER_DELETE, anything ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
/** * Handles to calls needed to perform post-save cascades. * @param source The session from which the event originated. * @param persister The entity's persister instance. * @param entity The entity beng saved. * @throws HibernateException */ protected void cascadeAfterSave( SessionImplementor source, EntityPersister persister, Object entity, Object anything) throws HibernateException { // cascade-save to collections AFTER the collection owner was saved source.getPersistenceContext().incrementCascadeLevel(); try { Cascades.cascade( source, persister, entity, getCascadeAction(), Cascades.CASCADE_AFTER_INSERT_BEFORE_DELETE, anything ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
private final void performReplication( Object entity, Serializable id, Object version, EntityPersister persister, ReplicationMode replicationMode, SessionImplementor source) throws HibernateException { if ( log.isTraceEnabled() ) { log.trace( "replicating changes to " + MessageHelper.infoString( persister, id, source.getFactory() ) ); } new OnReplicateVisitor(source, id, true).process( entity, persister ); source.getPersistenceContext().addEntity( entity, Status.MANAGED, null, id, version, LockMode.NONE, true, persister, true ); source.getPersistenceContext().incrementCascadeLevel(); try { Cascades.cascade( source, persister, entity, Cascades.ACTION_REPLICATE, Cascades.CASCADE_AFTER_UPDATE, replicationMode ); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
/** * Handles the calls needed to perform pre-save cascades for the given entity. * @param source The session from whcih the save event originated. * @param persister The entity's persister instance. * @param entity The entity to be saved. * @throws HibernateException */ protected void cascadeBeforeSave( EventSource source, EntityPersister persister, Object entity, Object anything) throws HibernateException { // cascade-save to many-to-one BEFORE the parent is saved source.getPersistenceContext().incrementCascadeLevel(); try { new Cascade( getCascadeAction(), Cascade.BEFORE_INSERT_AFTER_DELETE, source ) .cascade(persister, entity, anything); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
/** * Handles to calls needed to perform post-save cascades. * @param source The session from which the event originated. * @param persister The entity's persister instance. * @param entity The entity beng saved. * @throws HibernateException */ protected void cascadeAfterSave( EventSource source, EntityPersister persister, Object entity, Object anything) throws HibernateException { // cascade-save to collections AFTER the collection owner was saved source.getPersistenceContext().incrementCascadeLevel(); try { new Cascade( getCascadeAction(), Cascade.AFTER_INSERT_BEFORE_DELETE, source ) .cascade(persister, entity, anything); } finally { source.getPersistenceContext().decrementCascadeLevel(); } }
protected void cascadeAfterDelete( SessionImplementor session, EntityPersister persister, Object entity) throws HibernateException { CacheMode cacheMode = session.getCacheMode(); session.setCacheMode(CacheMode.GET); session.getPersistenceContext().incrementCascadeLevel(); try { // cascade-delete to many-to-one AFTER the parent was deleted Cascades.cascade( session, persister, entity, Cascades.ACTION_DELETE, Cascades.CASCADE_BEFORE_INSERT_AFTER_DELETE ); } finally { session.getPersistenceContext().decrementCascadeLevel(); session.setCacheMode(cacheMode); } }
protected void cascadeBeforeDelete( SessionImplementor session, EntityPersister persister, Object entity, EntityEntry entityEntry) throws HibernateException { CacheMode cacheMode = session.getCacheMode(); session.setCacheMode(CacheMode.GET); session.getPersistenceContext().incrementCascadeLevel(); try { // cascade-delete to collections BEFORE the collection owner is deleted Cascades.cascade( session, persister, entity, Cascades.ACTION_DELETE, Cascades.CASCADE_AFTER_INSERT_BEFORE_DELETE ); } finally { session.getPersistenceContext().decrementCascadeLevel(); session.setCacheMode(cacheMode); } }