org.hibernate.event.def
Class DefaultDeleteEventListener
java.lang.Object
org.hibernate.event.def.DefaultDeleteEventListener
- DeleteEventListener, Serializable
public class DefaultDeleteEventListener
extends java.lang.Object
Defines the default delete event listener used by hibernate for deleting entities
from the datastore in response to generated delete events.
protected void | cascadeAfterDelete(EventSource session, EntityPersister persister, Object entity, Set transientEntities)
|
protected void | cascadeBeforeDelete(EventSource session, EntityPersister persister, Object entity, EntityEntry entityEntry, Set transientEntities)
|
protected void | deleteEntity(EventSource session, Object entity, EntityEntry entityEntry, boolean isCascadeDeleteEnabled, EntityPersister persister, Set transientEntities) - Perform the entity deletion.
|
protected void | deleteTransientEntity(EventSource session, Object entity, boolean cascadeDeleteEnabled, EntityPersister persister, Set transientEntities) - We encountered a delete request on a transient instance.
|
protected boolean | invokeDeleteLifecycle(EventSource session, Object entity, EntityPersister persister)
|
void | onDelete(DeleteEvent event) - Handle the given delete event.
|
void | onDelete(DeleteEvent event, Set transientEntities) - Handle the given delete event.
|
protected void | performDetachedEntityDeletionCheck(DeleteEvent event) - Called when we have recognized an attempt to delete a detached entity.
|
deleteEntity
protected final void deleteEntity(EventSource session,
Object entity,
EntityEntry entityEntry,
boolean isCascadeDeleteEnabled,
EntityPersister persister,
Set 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.
session
- The originating sessionentity
- The entity to deleteentityEntry
- The entity's entry in the PersistenceContext
isCascadeDeleteEnabled
- Is delete cascading enabled?persister
- The entity persister.transientEntities
- A cache of already deleted entities.
deleteTransientEntity
protected void deleteTransientEntity(EventSource session,
Object entity,
boolean cascadeDeleteEnabled,
EntityPersister persister,
Set 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.
session
- The session which is the source of the evententity
- The entity being delete processedcascadeDeleteEnabled
- Is cascading of deletes enabledpersister
- The entity persistertransientEntities
- A cache of already visited transient entities
(to avoid infinite recursion).
performDetachedEntityDeletionCheck
protected void performDetachedEntityDeletionCheck(DeleteEvent event)
Called when we have recognized an attempt to delete a detached entity.
This is perfectly valid in Hibernate usage; JPA, however, forbids this.
Thus, this is a hook for HEM to affect this behavior.