Class Overview
Defines the default delete event listener used by hibernate for deleting entities
from the datastore in response to generated delete events.
Summary
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.
|
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
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
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.