Interface EntityEntry

  • All Known Implementing Classes:
    AbstractEntityEntry, ImmutableEntityEntry, MutableEntityEntry

    public interface EntityEntry
    Information about the current state of a managed entity instance with respect to its persistent state.
    Implementation Note:
    Hibernate instantiates very many of instances of this type, and so we need to take care of its impact on memory consumption.
    • Method Detail

      • setLockMode

        void setLockMode​(LockMode lockMode)
      • getStatus

        Status getStatus()
      • setStatus

        void setStatus​(Status status)
      • getLoadedState

        Object[] getLoadedState()
      • getLoadedValue

        Object getLoadedValue​(String propertyName)
      • overwriteLoadedStateCollectionValue

        void overwriteLoadedStateCollectionValue​(String propertyName,
                                                 PersistentCollection<?> collection)
      • getDeletedState

        Object[] getDeletedState()
      • setDeletedState

        void setDeletedState​(Object[] deletedState)
      • isExistsInDatabase

        boolean isExistsInDatabase()
      • getVersion

        Object getVersion()
      • postInsert

        void postInsert​(Object version)
      • getEntityName

        String getEntityName()
      • isBeingReplicated

        boolean isBeingReplicated()
      • postUpdate

        void postUpdate​(Object entity,
                        Object[] updatedState,
                        Object nextVersion)
        Handle updating the internal state of the entry after actually performing the database update. Specifically, we update the snapshot information and escalate the lock mode.
        Parameters:
        entity - The entity instance
        updatedState - The state calculated after the update (becomes the new loaded state.
        nextVersion - The new version.
      • postDelete

        void postDelete()
        After actually deleting a row, record the fact that the instance no longer exists in the database.
      • postInsert

        void postInsert​(Object[] insertedState)
        After actually inserting a row, record the fact that the instance exists in the database (needed for identity column key generation).
      • requiresDirtyCheck

        boolean requiresDirtyCheck​(Object entity)
        Returns true if the entity can possibly be dirty. This can only be the case if it is in a modifiable state (not read-only nor deleted) and it either has mutable properties or field-interception is not telling us that it is dirty.
        Parameters:
        entity - The entity to test
        Returns:
        true indicates that the entity could possibly be dirty and that the dirty-check should happen; false indicates there is no way the entity can be dirty
      • isModifiableEntity

        boolean isModifiableEntity()
        Can the entity be modified?

        The entity is modifiable if all the following are true:

        • the entity class is mutable,
        • the entity is not read-only, and
        • if the current status is Status.DELETED, then the entity was not read-only when it was deleted.
        Returns:
        true, if the entity is modifiable; false, otherwise,
      • forceLocked

        void forceLocked​(Object entity,
                         Object nextVersion)
      • isReadOnly

        boolean isReadOnly()
      • setReadOnly

        void setReadOnly​(boolean readOnly,
                         Object entity)
      • serialize

        void serialize​(ObjectOutputStream oos)
                throws IOException
        Custom serialization routine used during serialization of a Session/PersistenceContext for increased performance.
        Parameters:
        oos - The stream to which we should write the serial data.
        Throws:
        IOException - If a stream error occurs