Interface LazyInitializer

    • Method Detail

      • getInternalIdentifier

        default Object getInternalIdentifier()
        Retrieve the identifier value for the entity our owning proxy represents.
        Returns:
        The identifier value.
      • getIdentifier

        Object getIdentifier()
        Retrieve the identifier value for the entity our owning proxy represents, without initializing the proxy.

        When JPA proxy compliance is enabled the proxy is initialized.

        Returns:
        The identifier value.
      • setIdentifier

        void setIdentifier​(Object id)
        Set the identifier value for the entity our owning proxy represents.
        Parameters:
        id - The identifier value.
      • getEntityName

        String getEntityName()
        The entity-name of the entity our owning proxy represents.
        Returns:
        The entity-name.
      • getPersistentClass

        Class<?> getPersistentClass()
        Get the actual class of the entity. Generally, getEntityName() should be used instead.
        Returns:
        The actual entity class.
      • isUninitialized

        boolean isUninitialized()
        Is the proxy uninitialized?
        Returns:
        True if uninitialized; false otherwise.
        See Also:
        Hibernate.isInitialized(Object)
      • getImplementation

        Object getImplementation()
        Return the underlying persistent object, initializing if necessary
        Returns:
        The underlying target entity.
      • getImplementation

        Object getImplementation​(SharedSessionContractImplementor session)
                          throws HibernateException
        Return the underlying persistent object in the given session, or null if not contained in this session's persistence context.
        Parameters:
        session - The session to check
        Returns:
        The target, or null.
        Throws:
        HibernateException - Indicates problem locating the target.
      • setImplementation

        void setImplementation​(Object target)
        Initialize the proxy manually by injecting its target.
        Parameters:
        target - The proxy target (the actual entity being proxied).
      • getImplementationClass

        Class<?> getImplementationClass()
        Get the actual class of the entity, possibly initializing the entity if it has subclasses.
        Returns:
        The actual entity class.
        Since:
        6.3
      • getImplementationEntityName

        String getImplementationEntityName()
        Get the actual name of the entity, possibly initializing the entity if it has subclasses.
        Returns:
        The actual entity name.
        Since:
        6.3
      • isReadOnlySettingAvailable

        boolean isReadOnlySettingAvailable()
        Is the proxy's read-only/modifiable setting available?
        Returns:
        true, if the setting is available false, if the proxy is detached or its associated session is closed
      • setReadOnly

        void setReadOnly​(boolean readOnly)
        Set an associated modifiable proxy to read-only mode, or a read-only proxy to modifiable mode. If the proxy is currently initialized, its implementation will be set to the same mode; otherwise, when the proxy is initialized, its implementation will have the same read-only/ modifiable setting as the proxy. In read-only mode, no snapshot is maintained and the instance is never dirty checked.

        If the associated proxy already has the specified read-only/modifiable setting, then this method does nothing.

        Parameters:
        readOnly - if true, the associated proxy is made read-only; if false, the associated proxy is made modifiable.
        Throws:
        TransientObjectException - if the proxy is not association with a session
        SessionException - if the proxy is associated with a session that is closed
        See Also:
        Session.setReadOnly(Object entityOrProxy, boolean readOnly)
      • getSession

        SharedSessionContractImplementor getSession()
        Get the session to which this proxy is associated, or null if it is not attached.
        Returns:
        The associated session.
      • setSession

        void setSession​(SharedSessionContractImplementor session)
                 throws HibernateException
        Associate the proxy with the given session.

        Care should be given to make certain that the proxy is added to the session's persistence context as well to maintain the symmetry of the association. That must be done separately as this method simply sets an internal reference. We do also check that if there is already an associated session that the proxy reference was removed from that previous session's persistence context.

        Parameters:
        session - The session
        Throws:
        HibernateException - Indicates that the proxy was still contained in the persistence context of the "previous session".
      • setUnwrap

        void setUnwrap​(boolean unwrap)
      • isUnwrap

        boolean isUnwrap()