Class ActionQueue

java.lang.Object
org.hibernate.engine.ActionQueue

public class ActionQueue extends Object
Responsible for maintaining the queue of actions related to events.

The ActionQueue holds the DML operations queued as part of a session's transactional-write-behind semantics. DML operations are queued here until a flush forces them to be executed against the database.
  • Constructor Details

    • ActionQueue

      public ActionQueue(SessionImplementor session)
      Constructs an action queue bound to the given session.
      Parameters:
      session - The session "owning" this queue.
  • Method Details

    • clear

      public void clear()
    • addAction

      public void addAction(EntityInsertAction action)
    • addAction

      public void addAction(EntityDeleteAction action)
    • addAction

      public void addAction(EntityUpdateAction action)
    • addAction

      public void addAction(CollectionRecreateAction action)
    • addAction

      public void addAction(CollectionRemoveAction action)
    • addAction

      public void addAction(CollectionUpdateAction action)
    • addAction

      public void addAction(EntityIdentityInsertAction insert)
    • addAction

      public void addAction(BulkOperationCleanupAction cleanupAction)
    • registerProcess

      public void registerProcess(AfterTransactionCompletionProcess process)
    • registerProcess

      public void registerProcess(BeforeTransactionCompletionProcess process)
    • executeInserts

      public void executeInserts() throws HibernateException
      Perform all currently queued entity-insertion actions.
      Throws:
      HibernateException - error executing queued insertion actions.
    • executeActions

      public void executeActions() throws HibernateException
      Perform all currently queued actions.
      Throws:
      HibernateException - error executing queued actions.
    • prepareActions

      public void prepareActions() throws HibernateException
      Prepares the internal action queues for execution.
      Throws:
      HibernateException - error preparing actions.
    • afterTransactionCompletion

      public void afterTransactionCompletion(boolean success)
      Performs cleanup of any held cache softlocks.
      Parameters:
      success - Was the transaction successful.
    • beforeTransactionCompletion

      public void beforeTransactionCompletion()
      Execute any registered BeforeTransactionCompletionProcess
    • 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.
    • 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.
    • execute

      public void execute(Executable executable)
    • 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()
    • cloneDeletions

      public ArrayList cloneDeletions()
    • 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)
    • serialize

      public void serialize(ObjectOutputStream oos) throws IOException
      Used by the owning session to explicitly control serialization of the action queue
      Parameters:
      oos - The stream to which the action queue should get written
      Throws:
      IOException - Indicates an error writing to the stream
    • deserialize

      public static ActionQueue deserialize(ObjectInputStream ois, SessionImplementor session) throws IOException, ClassNotFoundException
      Used by the owning session to explicitly control deserialization of the action queue
      Parameters:
      ois - The stream from which to read the action queue
      session - The session to which the action queue belongs
      Returns:
      The deserialized action queue
      Throws:
      IOException - indicates a problem reading from the stream
      ClassNotFoundException - Generally means we were unable to locate user classes.