public class

DefaultDeleteEventListener

extends Object
implements DeleteEventListener
java.lang.Object
   ↳ org.hibernate.event.def.DefaultDeleteEventListener

Class Overview

Defines the default delete event listener used by hibernate for deleting entities from the datastore in response to generated delete events.

Summary

Public Constructors
DefaultDeleteEventListener()
Public Methods
void onDelete(DeleteEvent event, Set transientEntities)
Handle the given delete event.
void onDelete(DeleteEvent event)
Handle the given delete event.
Protected Methods
void cascadeAfterDelete(EventSource session, EntityPersister persister, Object entity, Set transientEntities)
void cascadeBeforeDelete(EventSource session, EntityPersister persister, Object entity, EntityEntry entityEntry, Set transientEntities)
final void deleteEntity(EventSource session, Object entity, EntityEntry entityEntry, boolean isCascadeDeleteEnabled, EntityPersister persister, Set transientEntities)
Perform the entity deletion.
void deleteTransientEntity(EventSource session, Object entity, boolean cascadeDeleteEnabled, EntityPersister persister, Set transientEntities)
We encountered a delete request on a transient instance.
boolean invokeDeleteLifecycle(EventSource session, Object entity, EntityPersister persister)
void performDetachedEntityDeletionCheck(DeleteEvent event)
Called when we have recognized an attempt to delete a detached entity.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.hibernate.event.DeleteEventListener

Public Constructors

public DefaultDeleteEventListener ()

Public Methods

public void onDelete (DeleteEvent event, Set transientEntities)

Handle the given delete event. This is the cascaded form.

Parameters
event The delete event.
transientEntities The cache of entities already deleted

public void onDelete (DeleteEvent event)

Handle the given delete event.

Parameters
event The delete event to be handled.

Protected Methods

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 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.

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.

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.

Parameters
session The session which is the source of the event
entity The entity being delete processed
cascadeDeleteEnabled Is cascading of deletes enabled
persister The entity persister
transientEntities A cache of already visited transient entities (to avoid infinite recursion).

protected boolean invokeDeleteLifecycle (EventSource session, Object entity, EntityPersister persister)

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.

Parameters
event The event.