public class DefaultReactiveDeleteEventListener extends Object implements ReactiveDeleteEventListener
org.hibernate.event.internal.DefaultDeleteEventListener
.Constructor and Description |
---|
DefaultReactiveDeleteEventListener() |
Modifier and Type | Method and Description |
---|---|
protected CompletionStage<Void> | cascadeAfterDelete(EventSource session, EntityPersister persister, Object entity, IdentitySet transientEntities) |
protected CompletionStage<?> | cascadeBeforeDelete(EventSource session, EntityPersister persister, Object entity, EntityEntry entityEntry, IdentitySet transientEntities) |
protected CompletionStage<?> | deleteEntity(EventSource session, Object entity, EntityEntry entityEntry, boolean isCascadeDeleteEnabled, boolean isOrphanRemovalBeforeUpdates, EntityPersister persister, IdentitySet transientEntities) Perform the entity deletion. |
protected CompletionStage<Void> | deleteTransientEntity(EventSource session, Object entity, boolean cascadeDeleteEnabled, EntityPersister persister, IdentitySet transientEntities) We encountered a delete request on a transient instance. |
void | injectCallbackRegistry(CallbackRegistry callbackRegistry) |
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. |
CompletionStage<Void> | reactiveOnDelete(DeleteEvent event) Handle the given delete event. |
CompletionStage<Void> | reactiveOnDelete(DeleteEvent event, IdentitySet transientEntities) Handle the given delete event. |
void | wasJpaBootstrap(boolean wasJpaBootstrap) |
public void injectCallbackRegistry(CallbackRegistry callbackRegistry)
public void wasJpaBootstrap(boolean wasJpaBootstrap)
public void onDelete(DeleteEvent event)
event
- The delete event to be handled.public void onDelete(DeleteEvent event, Set transientEntities)
event
- The delete event.transientEntities
- The cache of entities already deletedpublic CompletionStage<Void> reactiveOnDelete(DeleteEvent event) throws HibernateException
reactiveOnDelete
in interface ReactiveDeleteEventListener
event
- The delete event to be handled.HibernateException
public CompletionStage<Void> reactiveOnDelete(DeleteEvent event, IdentitySet transientEntities) throws HibernateException
reactiveOnDelete
in interface ReactiveDeleteEventListener
event
- The delete event.transientEntities
- The cache of entities already deletedHibernateException
protected void performDetachedEntityDeletionCheck(DeleteEvent event)
This is perfectly valid in Hibernate usage; JPA, however, forbids this. Thus, this is a hook for HEM to affect this behavior.
event
- The event.protected CompletionStage<Void> deleteTransientEntity(EventSource session, Object entity, boolean cascadeDeleteEnabled, EntityPersister persister, IdentitySet transientEntities)
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).protected CompletionStage<?> deleteEntity(EventSource session, Object entity, EntityEntry entityEntry, boolean isCascadeDeleteEnabled, boolean isOrphanRemovalBeforeUpdates, EntityPersister persister, IdentitySet transientEntities)
org.hibernate.engine.spi.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.protected CompletionStage<?> cascadeBeforeDelete(EventSource session, EntityPersister persister, Object entity, EntityEntry entityEntry, IdentitySet transientEntities) throws HibernateException
HibernateException
protected CompletionStage<Void> cascadeAfterDelete(EventSource session, EntityPersister persister, Object entity, IdentitySet transientEntities) throws HibernateException
HibernateException