Package org.hibernate.event.internal
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
cascadeAfterDelete
(EventSource session, EntityPersister persister, Object entity, DeleteContext transientEntities) protected void
cascadeBeforeDelete
(EventSource session, EntityPersister persister, Object entity, DeleteContext transientEntities) protected final void
deleteEntity
(EventSource session, Object entity, EntityEntry entityEntry, boolean isCascadeDeleteEnabled, boolean isOrphanRemovalBeforeUpdates, EntityPersister persister, DeleteContext transientEntities) Perform the entity deletion.protected void
deleteTransientEntity
(EventSource session, Object entity, EntityPersister persister, DeleteContext transientEntities) We encountered a delete request on a transient instance.void
injectCallbackRegistry
(CallbackRegistry callbackRegistry) Injection of the CallbackRegistryvoid
onDelete
(DeleteEvent event) Handle the given delete event.void
onDelete
(DeleteEvent event, DeleteContext transientEntities) Handle the given delete event.
-
Constructor Details
-
DefaultDeleteEventListener
public DefaultDeleteEventListener()
-
-
Method Details
-
injectCallbackRegistry
Description copied from interface:CallbackRegistryConsumer
Injection of the CallbackRegistry- Specified by:
injectCallbackRegistry
in interfaceCallbackRegistryConsumer
- Parameters:
callbackRegistry
- The CallbackRegistry
-
onDelete
Handle the given delete event.- Specified by:
onDelete
in interfaceDeleteEventListener
- Parameters:
event
- The delete event to be handled.- Throws:
HibernateException
-
onDelete
Handle the given delete event. This is the cascaded form.- Specified by:
onDelete
in interfaceDeleteEventListener
- 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 evententity
- The entity being delete processedpersister
- The entity persistertransientEntities
- 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 theActionQueue
for execution during flush.- Parameters:
session
- The originating sessionentity
- The entity to deleteentityEntry
- The entity's entry in thePersistenceContext
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
-