Class AbstractEntityInsertAction

java.lang.Object
org.hibernate.action.internal.EntityAction
org.hibernate.action.internal.AbstractEntityInsertAction
All Implemented Interfaces:
Serializable, Comparable<ComparableExecutable>, AfterTransactionCompletionProcess, Executable, ComparableExecutable
Direct Known Subclasses:
EntityIdentityInsertAction, EntityInsertAction

public abstract class AbstractEntityInsertAction extends EntityAction
A base class for entity insert actions.
See Also:
  • Constructor Details

    • AbstractEntityInsertAction

      protected AbstractEntityInsertAction(Object id, Object[] state, Object instance, boolean isVersionIncrementDisabled, EntityPersister persister, EventSource session)
      Constructs an AbstractEntityInsertAction object.
      Parameters:
      id - - the entity ID
      state - - the entity state
      instance - - the entity
      isVersionIncrementDisabled - - true, if version increment should be disabled; false, otherwise
      persister - - the entity persister
      session - - the session
  • Method Details

    • getState

      public Object[] getState()
      Returns the entity state.

      Note that the call to nullifyTransientReferencesIfNotAlready() can modify the entity state.

      Returns:
      the entity state.
      See Also:
    • isEarlyInsert

      public abstract boolean isEarlyInsert()
      Does this insert action need to be executed as soon as possible (e.g., to generate an ID)?
      Returns:
      true, if it needs to be executed as soon as possible; false, otherwise.
    • findNonNullableTransientEntities

      public NonNullableTransientDependencies findNonNullableTransientEntities()
      Find the transient unsaved entity dependencies that are non-nullable.
      Returns:
      the transient unsaved entity dependencies that are non-nullable, or null if there are none.
    • nullifyTransientReferencesIfNotAlready

      protected final void nullifyTransientReferencesIfNotAlready()
      Nullifies any references to transient entities in the entity state maintained by this action. References to transient entities should be nullified when an entity is made "managed" or when this action is executed, whichever is first.

      References will only be nullified the first time this method is called for a this object, so it can safely be called both when the entity is made "managed" and when this action is executed.

      See Also:
    • makeEntityManaged

      public final void makeEntityManaged()
      Make the entity "managed" by the persistence context.
    • addCollectionsByKeyToPersistenceContext

      protected void addCollectionsByKeyToPersistenceContext(PersistenceContext persistenceContext, Object[] objects)
    • markExecuted

      protected void markExecuted()
      Indicate that the action has executed.
    • getEntityKey

      protected abstract EntityKey getEntityKey()
      Returns the EntityKey.
      Returns:
      the EntityKey.
    • getRowId

      protected abstract Object getRowId()
    • afterDeserialize

      public void afterDeserialize(EventSource session)
      Description copied from class: EntityAction
      Reconnect to session after deserialization...
      Specified by:
      afterDeserialize in interface Executable
      Overrides:
      afterDeserialize in class EntityAction
      Parameters:
      session - The session being deserialized
    • handleNaturalIdPreSaveNotifications

      protected void handleNaturalIdPreSaveNotifications()
      Handle sending notifications needed for natural-id before saving
    • handleNaturalIdPostSaveNotifications

      public void handleNaturalIdPostSaveNotifications(Object generatedId)
      Handle sending notifications needed for natural-id after saving
      Parameters:
      generatedId - The generated entity identifier