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 voidcascadeAfterDelete(EventSource session, EntityPersister persister, Object entity, DeleteContext transientEntities) protected voidcascadeBeforeDelete(EventSource session, EntityPersister persister, Object entity, DeleteContext transientEntities) protected final voiddeleteEntity(EventSource session, Object entity, EntityEntry entityEntry, boolean isCascadeDeleteEnabled, boolean isOrphanRemovalBeforeUpdates, EntityPersister persister, DeleteContext transientEntities) Perform the entity deletion.protected voiddeleteTransientEntity(EventSource session, Object entity, EntityPersister persister, DeleteContext transientEntities) We encountered a delete request on a transient instance.voidinjectCallbackRegistry(CallbackRegistry callbackRegistry) Injection of the CallbackRegistryvoidonDelete(DeleteEvent event) Handle the given delete event.voidonDelete(DeleteEvent event, DeleteContext transientEntities) Handle the given delete event.
-
Constructor Details
-
DefaultDeleteEventListener
public DefaultDeleteEventListener()
-
-
Method Details
-
injectCallbackRegistry
Description copied from interface:CallbackRegistryConsumerInjection of the CallbackRegistry- Specified by:
injectCallbackRegistryin interfaceCallbackRegistryConsumer- Parameters:
callbackRegistry- The CallbackRegistry
-
onDelete
Handle the given delete event.- Specified by:
onDeletein interfaceDeleteEventListener- Parameters:
event- The delete event to be handled.- Throws:
HibernateException
-
onDelete
Handle the given delete event. This is the cascaded form.- Specified by:
onDeletein 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 theActionQueuefor execution during flush.- Parameters:
session- The originating sessionentity- The entity to deleteentityEntry- The entity's entry in thePersistenceContextisCascadeDeleteEnabled- 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
-