final EventSource source = event.getSession(); Object entity = persistenceContext.unproxyAndReassociate( event.getObject() ); LOG.trace( "Entity was not persistent in delete processing" ); persister = source.getEntityPersister( event.getEntityName(), entity ); deleteTransientEntity( source, entity, event.isCascadeDeleteEnabled(), persister, transientEntities ); entity, entityEntry, event.isCascadeDeleteEnabled(), event.isOrphanRemovalBeforeUpdates(), persister, transientEntities
@Override public void delete(Object object) throws HibernateException { checkOpen(); fireDelete( new DeleteEvent( object, this ) ); }
private void disallowDeletionOfDetached(DeleteEvent event) { EventSource source = event.getSession(); String entityName = event.getEntityName(); EntityPersister persister = source.getEntityPersister( entityName, event.getObject() ); Serializable id = persister.getIdentifier( event.getObject(), source ); entityName = entityName == null ? source.guessEntityName( event.getObject() ) : entityName; throw new IllegalArgumentException("Removing a detached instance "+ entityName + "#" + id); }
@Override public void onDelete(DeleteEvent event) throws HibernateException { try { wrappedListener.onDelete(event); } catch (StaleObjectStateException e) { HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e); } }
public class SoftDeleteEventListener extends DefaultDeleteEventListener { /** * */ private static final long serialVersionUID = 1L; @Override public void onDelete(DeleteEvent event, Set arg1) throws HibernateException { Object o = event.getObject(); if (o instanceof SoftDeletable) { ((SoftDeletable)o).setStatusId(1); EntityPersister persister = event.getSession().getEntityPersister( event.getEntityName(), o); EntityEntry entityEntry = event.getSession().getPersistenceContext().getEntry(o); cascadeBeforeDelete(event.getSession(), persister, o, entityEntry, arg1); cascadeAfterDelete(event.getSession(), persister, o, arg1); } else { super.onDelete(event, arg1); } }
@SuppressWarnings("rawtypes") @Override public void onDelete(DeleteEvent event, Set transientEntities) throws HibernateException { try { wrappedListener.onDelete(event, transientEntities); } catch (StaleObjectStateException e) { HibernateOptimisticLockException.rethrowOptimisticLockException(event.getSession(), e); } } }
final EventSource source = event.getSession(); Object entity = persistenceContext.unproxyAndReassociate( event.getObject() ); LOG.trace( "Entity was not persistent in delete processing" ); descriptor = source.getEntityDescriptor( event.getEntityName(), entity ); deleteTransientEntity( source, entity, event.isCascadeDeleteEnabled(), descriptor, transientEntities ); entity, entityEntry, event.isCascadeDeleteEnabled(), event.isOrphanRemovalBeforeUpdates(), descriptor, transientEntities
public class SoftDeleteEventListener extends DefaultDeleteEventListener { /** * */ private static final long serialVersionUID = 1L; @Override public void onDelete(DeleteEvent event, Set arg1) throws HibernateException { Object o = event.getObject(); if (o instanceof SoftDeletable) { ((SoftDeletable)o).setStatusId(1); EntityPersister persister = event.getSession().getEntityPersister( event.getEntityName(), o); EntityEntry entityEntry = event.getSession().getPersistenceContext().getEntry(o); cascadeBeforeDelete(event.getSession(), persister, o, entityEntry, arg1); cascadeAfterDelete(event.getSession(), persister, o, arg1); } else { super.onDelete(event, arg1); } } }
@Override public void delete(String entityName, Object object) throws HibernateException { checkOpen(); fireDelete( new DeleteEvent( entityName, object, this ) ); }
final EventSource source = event.getSession(); Object entity = persistenceContext.unproxyAndReassociate( event.getObject() ); LOG.trace( "Entity was not persistent in delete processing" ); persister = source.getEntityPersister( event.getEntityName(), entity ); deleteTransientEntity( source, entity, event.isCascadeDeleteEnabled(), persister, transientEntities ); deleteEntity( source, entity, entityEntry, event.isCascadeDeleteEnabled(), persister, transientEntities );
@Override protected void performDetachedEntityDeletionCheck(DeleteEvent event) { EventSource source = event.getSession(); String entityName = event.getEntityName(); EntityPersister persister = source.getEntityPersister( entityName, event.getObject() ); Serializable id = persister.getIdentifier( event.getObject(), source ); entityName = entityName == null ? source.guessEntityName( event.getObject() ) : entityName; throw new IllegalArgumentException("Removing a detached instance "+ entityName + "#" + id); } }
@Override public void removeOrphanBeforeUpdates(String entityName, Object child) { // TODO: The removeOrphan concept is a temporary "hack" for HHH-6484. This should be removed once action/task // ordering is improved. if ( TRACE_ENABLED ) { logRemoveOrphanBeforeUpdates( "begin", entityName, child ); } persistenceContext.beginRemoveOrphanBeforeUpdates(); try { checkOpenOrWaitingForAutoClose(); fireDelete( new DeleteEvent( entityName, child, false, true, this ) ); } finally { persistenceContext.endRemoveOrphanBeforeUpdates(); if ( TRACE_ENABLED ) { logRemoveOrphanBeforeUpdates( "end", entityName, child ); } } }
final EventSource source = event.getSession(); Object entity = persistenceContext.unproxyAndReassociate( event.getObject() ); LOG.trace( "Entity was not persistent in delete processing" ); persister = source.getEntityPersister( event.getEntityName(), entity ); deleteTransientEntity( source, entity, event.isCascadeDeleteEnabled(), persister, transientEntities ); deleteEntity( source, entity, entityEntry, event.isCascadeDeleteEnabled(), persister, transientEntities );
private void disallowDeletionOfDetached(DeleteEvent event) { EventSource source = event.getSession(); String entityName = event.getEntityName(); EntityTypeDescriptor descriptor = source.getEntityDescriptor( entityName, event.getObject() ); Object id = descriptor.getIdentifier( event.getObject(), source ); entityName = entityName == null ? source.guessEntityName( event.getObject() ) : entityName; throw new IllegalArgumentException( "Removing a detached instance " + entityName + "#" + id ); }
@Override public void delete(String entityName, Object object, boolean isCascadeDeleteEnabled, Set transientEntities) throws HibernateException { checkOpenOrWaitingForAutoClose(); if ( TRACE_ENABLED && persistenceContext.isRemovingOrphanBeforeUpates() ) { logRemoveOrphanBeforeUpdates( "before continuing", entityName, object ); } fireDelete( new DeleteEvent( entityName, object, isCascadeDeleteEnabled, persistenceContext.isRemovingOrphanBeforeUpates(), this ), transientEntities ); if ( TRACE_ENABLED && persistenceContext.isRemovingOrphanBeforeUpates() ) { logRemoveOrphanBeforeUpdates( "after continuing", entityName, object ); } }
/** * Delete a persistent object */ public void delete(String entityName, Object object, boolean isCascadeDeleteEnabled, Set transientEntities) throws HibernateException { fireDelete( new DeleteEvent( entityName, object, isCascadeDeleteEnabled, this ), transientEntities ); }
/** * Delete a persistent object (by explicit entity name) */ public void delete(String entityName, Object object) throws HibernateException { fireDelete( new DeleteEvent( entityName, object, this ) ); }
/** * Delete a persistent object */ public void delete(Object object) throws HibernateException { fireDelete( new DeleteEvent( object, this ) ); }
/** * Delete a persistent object */ public void delete(String entityName, Object object, boolean isCascadeDeleteEnabled, Set transientEntities) throws HibernateException { fireDelete( new DeleteEvent( entityName, object, isCascadeDeleteEnabled, this ), transientEntities ); }
/** * Delete a persistent object */ public void delete(Object object) throws HibernateException { fireDelete( new DeleteEvent( object, this ) ); }