Package org.hibernate.reactive.engine
Class ReactiveActionQueue
java.lang.Object
org.hibernate.reactive.engine.ReactiveActionQueue
A reactive counterpart to
ActionQueue, where DML
operations are queued before execution during a flush.-
Constructor Summary
ConstructorsConstructorDescriptionReactiveActionQueue(ReactiveSession session) Constructs an action queue bound to the given session. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAction(org.hibernate.action.internal.BulkOperationCleanupAction action) Adds an action defining a cleanup relating to a bulk operation (HQL/JPQL or Criteria based update/delete)voidaddAction(org.hibernate.reactive.engine.impl.QueuedOperationCollectionAction action) Adds an action relating to a collection queued operation (extra lazy).voidaddAction(org.hibernate.reactive.engine.impl.ReactiveCollectionRecreateAction action) Adds a collection (re)create actionvoidaddAction(org.hibernate.reactive.engine.impl.ReactiveCollectionRemoveAction action) Adds a collection remove actionvoidaddAction(org.hibernate.reactive.engine.impl.ReactiveCollectionUpdateAction action) Adds a collection update actionvoidaddAction(org.hibernate.reactive.engine.impl.ReactiveEntityDeleteAction action) Adds an entity delete actionaddAction(org.hibernate.reactive.engine.impl.ReactiveEntityInsertAction action) Adds an entity (REGULAR) insert actionvoidaddAction(org.hibernate.reactive.engine.impl.ReactiveEntityUpdateAction action) Adds an entity update actionvoidaddAction(org.hibernate.reactive.engine.impl.ReactiveOrphanRemovalAction action) Adds an orphan removal actionafterTransactionCompletion(boolean success) Performs cleanup of any held cache softlocks.booleanCheck whether any insertion or deletion actions are currently queued.booleanareTablesToBeUpdated(Set tables) Check whether the given tables/query-spaces are to be executed against given the currently queued actions.Execute any registeredBeforeTransactionCompletionProcessvoidThrowsPropertyValueExceptionif there are any unresolved entity insert actions that depend on non-nullable associations with a transient entity.voidclear()voidclearFromFlushNeededCheck(int previousCollectionRemovalSize) <E extends ReactiveExecutable>
CompletionStage<Void>execute(E executable) Perform all currently queued actions.Perform all currently queued entity-insertion actions.booleanbooleanbooleanbooleanAre there unresolved entity insert actions that depend on non-nullable associations with a transient entity?intintintintintintvoidPrepares the internal action queues for execution.voidvoidvoidvoidvoidvoidtoString()Returns a string representation of the object.voidunScheduleDeletion(EntityEntry entry, Object rescuedEntity)
-
Constructor Details
-
ReactiveActionQueue
Constructs an action queue bound to the given session.- Parameters:
session- The session "owning" this queue.
-
-
Method Details
-
clear
public void clear() -
addAction
public CompletionStage<Void> addAction(org.hibernate.reactive.engine.impl.ReactiveEntityInsertAction action) Adds an entity (REGULAR) 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
-
checkNoUnresolvedActionsAfterOperation
ThrowsPropertyValueExceptionif there are any unresolved entity insert actions that depend on non-nullable associations with a transient entity. This method should be called on completion of an operation (after all cascades are completed) that saves an entity.- Throws:
PropertyValueException- if there are any unresolved entity insert actions;PropertyValueException.getEntityName()andPropertyValueException.getPropertyName()will return the entity name and property value for the first unresolved entity insert action.
-
registerProcess
-
registerProcess
-
registerProcess
-
registerProcess
-
executeInserts
Perform all currently queued entity-insertion actions.- Throws:
HibernateException- error executing queued insertion actions.
-
executeActions
Perform all currently queued actions.- Throws:
HibernateException- error executing queued actions.
-
prepareActions
Prepares the internal action queues for execution.- Throws:
HibernateException- error preparing actions.
-
afterTransactionCompletion
Performs cleanup of any held cache softlocks.- Parameters:
success- Was the transaction successful.
-
beforeTransactionCompletion
Execute any registeredBeforeTransactionCompletionProcess -
areInsertionsOrDeletionsQueued
public boolean areInsertionsOrDeletionsQueued()Check whether any insertion or deletion actions are currently queued.- Returns:
trueif insertions or deletions are currently queued;falseotherwise.
-
areTablesToBeUpdated
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:
trueif we contain pending actions against any of the given tables;falseotherwise.
-
execute
- Parameters:
executable- The action to execute
-
toString
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
-