Class ReactiveActionQueue


  • public class ReactiveActionQueue
    extends Object
    A reactive counterpart to ActionQueue, where DML operations are queued before execution during a flush.
    • Constructor Detail

      • ReactiveActionQueue

        public ReactiveActionQueue​(ReactiveSession session)
        Constructs an action queue bound to the given session.
        Parameters:
        session - The session "owning" this queue.
    • Method Detail

      • clear

        public void clear()
      • addAction

        public CompletionStage<Void> addAction​(org.hibernate.reactive.engine.impl.ReactiveEntityRegularInsertAction action)
      • addAction

        public CompletionStage<Void> addAction​(org.hibernate.reactive.engine.impl.ReactiveEntityIdentityInsertAction action)
        Adds an entity (IDENTITY) insert action
        Parameters:
        action - The action representing the entity insertion
      • addAction

        public void addAction​(org.hibernate.reactive.engine.impl.ReactiveEntityDeleteAction action)
        Adds an entity delete action
        Parameters:
        action - The action representing the entity deletion
      • addAction

        public void addAction​(org.hibernate.reactive.engine.impl.ReactiveOrphanRemovalAction action)
        Adds an orphan removal action
        Parameters:
        action - The action representing the orphan removal
      • addAction

        public void addAction​(org.hibernate.reactive.engine.impl.ReactiveEntityUpdateAction action)
        Adds an entity update action
        Parameters:
        action - The action representing the entity update
      • addAction

        public void addAction​(org.hibernate.reactive.engine.impl.ReactiveCollectionRecreateAction action)
        Adds a collection (re)create action
        Parameters:
        action - The action representing the (re)creation of a collection
      • addAction

        public void addAction​(org.hibernate.reactive.engine.impl.ReactiveCollectionRemoveAction action)
        Adds a collection remove action
        Parameters:
        action - The action representing the removal of a collection
      • addAction

        public void addAction​(org.hibernate.reactive.engine.impl.ReactiveCollectionUpdateAction action)
        Adds a collection update action
        Parameters:
        action - The action representing the update of a collection
      • addAction

        public void addAction​(org.hibernate.reactive.engine.impl.QueuedOperationCollectionAction action)
        Adds an action relating to a collection queued operation (extra lazy).
        Parameters:
        action - The action representing the queued operation
      • addAction

        public void addAction​(org.hibernate.action.internal.BulkOperationCleanupAction action)
        Adds an action defining a cleanup relating to a bulk operation (HQL/JPQL or Criteria based update/delete)
        Parameters:
        action - The action representing the queued operation
      • hasUnresolvedEntityInsertActions

        public boolean hasUnresolvedEntityInsertActions()
        Are there unresolved entity insert actions that depend on non-nullable associations with a transient entity?
        Returns:
        true, if there are unresolved entity insert actions that depend on non-nullable associations with a transient entity; false, otherwise
      • executeInserts

        public CompletionStage<Void> executeInserts()
        Perform all currently queued entity-insertion actions.
        Throws:
        HibernateException - error executing queued insertion actions.
      • afterTransactionCompletion

        public CompletionStage<Void> afterTransactionCompletion​(boolean success)
        Performs cleanup of any held cache softlocks.
        Parameters:
        success - Was the transaction successful.
      • areInsertionsOrDeletionsQueued

        public boolean areInsertionsOrDeletionsQueued()
        Check whether any insertion or deletion actions are currently queued.
        Returns:
        true if insertions or deletions are currently queued; false otherwise.
      • areTablesToBeUpdated

        public boolean areTablesToBeUpdated​(Set tables)
        Check whether the given tables/query-spaces are to be executed against given the currently queued actions.
        Parameters:
        tables - The table/query-spaces to check.
        Returns:
        true if we contain pending actions against any of the given tables; false otherwise.
      • toString

        public String toString()
        Returns a string representation of the object.
        Overrides:
        toString in class Object
        Returns:
        a string representation of the object.
      • numberOfCollectionRemovals

        public int numberOfCollectionRemovals()
      • numberOfCollectionUpdates

        public int numberOfCollectionUpdates()
      • numberOfCollectionCreations

        public int numberOfCollectionCreations()
      • numberOfDeletions

        public int numberOfDeletions()
      • numberOfUpdates

        public int numberOfUpdates()
      • numberOfInsertions

        public int numberOfInsertions()
      • sortCollectionActions

        public void sortCollectionActions()
      • sortActions

        public void sortActions()
      • clearFromFlushNeededCheck

        public void clearFromFlushNeededCheck​(int previousCollectionRemovalSize)
      • hasAfterTransactionActions

        public boolean hasAfterTransactionActions()
      • hasBeforeTransactionActions

        public boolean hasBeforeTransactionActions()
      • hasAnyQueuedActions

        public boolean hasAnyQueuedActions()
      • unScheduleDeletion

        public void unScheduleDeletion​(EntityEntry entry,
                                       Object rescuedEntity)