Class DefaultDeleteEventListener

java.lang.Object
org.hibernate.event.internal.DefaultDeleteEventListener
All Implemented Interfaces:
DeleteEventListener, CallbackRegistryConsumer

public class DefaultDeleteEventListener extends Object implements DeleteEventListener, CallbackRegistryConsumer
Defines the default delete event listener used by hibernate for deleting entities from the datastore in response to generated delete events.
  • Constructor Details

    • DefaultDeleteEventListener

      public DefaultDeleteEventListener()
  • Method Details

    • injectCallbackRegistry

      public void injectCallbackRegistry(CallbackRegistry callbackRegistry)
      Description copied from interface: CallbackRegistryConsumer
      Injection of the CallbackRegistry
      Specified by:
      injectCallbackRegistry in interface CallbackRegistryConsumer
      Parameters:
      callbackRegistry - The CallbackRegistry
    • onDelete

      public void onDelete(DeleteEvent event) throws HibernateException
      Handle the given delete event.
      Specified by:
      onDelete in interface DeleteEventListener
      Parameters:
      event - The delete event to be handled.
      Throws:
      HibernateException
    • onDelete

      public void onDelete(DeleteEvent event, DeleteContext transientEntities) throws HibernateException
      Handle the given delete event. This is the cascaded form.
      Specified by:
      onDelete in interface DeleteEventListener
      Parameters:
      event - The delete event.
      transientEntities - The cache of entities already deleted
      Throws:
      HibernateException
    • deleteTransientEntity

      protected void deleteTransientEntity(EventSource session, Object entity, EntityPersister persister, DeleteContext transientEntities)
      We encountered a delete request on a transient instance.

      This is a deviation from historical Hibernate (pre-3.2) behavior to align with the JPA spec, which states that transient entities can be passed to remove operation in which case cascades still need to be performed.

      Parameters:
      session - The session which is the source of the event
      entity - The entity being delete processed
      persister - The entity persister
      transientEntities - A cache of already visited transient entities (to avoid infinite recursion).
    • deleteEntity

      protected final void deleteEntity(EventSource session, Object entity, EntityEntry entityEntry, boolean isCascadeDeleteEnabled, boolean isOrphanRemovalBeforeUpdates, EntityPersister persister, DeleteContext transientEntities)
      Perform the entity deletion. Well, as with most operations, does not really perform it; just schedules an action/execution with the ActionQueue for execution during flush.
      Parameters:
      session - The originating session
      entity - The entity to delete
      entityEntry - The entity's entry in the PersistenceContext
      isCascadeDeleteEnabled - Is delete cascading enabled?
      persister - The entity persister.
      transientEntities - A cache of already deleted entities.
    • cascadeBeforeDelete

      protected void cascadeBeforeDelete(EventSource session, EntityPersister persister, Object entity, DeleteContext transientEntities) throws HibernateException
      Throws:
      HibernateException
    • cascadeAfterDelete

      protected void cascadeAfterDelete(EventSource session, EntityPersister persister, Object entity, DeleteContext transientEntities) throws HibernateException
      Throws:
      HibernateException