Class DefaultDeleteEventListener

    • Constructor Detail

      • DefaultDeleteEventListener

        public DefaultDeleteEventListener()
    • Method Detail

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

        Parameters:
        event - The event.
      • deleteTransientEntity

        protected void deleteTransientEntity​(EventSource session,
                                             Object entity,
                                             boolean cascadeDeleteEnabled,
                                             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 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).
      • 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 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.