Class AbstractLazyInitializer
- All Implemented Interfaces:
LazyInitializer
- Direct Known Subclasses:
BasicLazyInitializer,MapLazyInitializer
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractLazyInitializer(String entityName, Object id, SharedSessionContractImplementor session) Main constructor. -
Method Summary
Modifier and TypeMethodDescriptionfinal StringThe entity-name of the entity our owning proxy represents.final ObjectRetrieve the identifier value for the entity our owning proxy represents, without initializing the proxy.final ObjectReturn the underlying persistent object, initializing if necessaryfinal ObjectReturn the underlying persistent object in the given session, or null if not contained in this session's persistence context.Get the actual name of the entity, possibly initializing the entity if it has subclasses.final ObjectRetrieve the identifier value for the entity our owning proxy represents.Get the session to which this proxy is associated, or null if it is not attached.protected StringGet the session factory name.protected StringGet the session factory UUID.protected final ObjectGetter for property "target".final voidInitialize the proxy, fetching the target entity if necessary.final voidAttempt to initialize the proxy without loading anything from the database.protected booleanGet whether the proxy can load data even if it's not attached to a session with an ongoing transaction.protected final booleanGetter for property 'connectedToSession'.final booleanIs the proxy read-only?final BooleanGet the read-only/modifiable setting that should be put in effect when it is attached to a session.final booleanIs the proxy's read-only/modifiable setting available?final booleanIs the proxy uninitialized?booleanisUnwrap()protected voidprotected voidInitialize internal state based on the currently attached session, in order to be ready to load data even after the proxy is detached from the session.final voidsetIdentifier(Object id) Set the identifier value for the entity our owning proxy represents.final voidsetImplementation(Object target) Initialize the proxy manually by injecting its target.final voidsetReadOnly(boolean readOnly) Set an associated modifiable proxy to read-only mode, or a read-only proxy to modifiable mode.final voidAssociate the proxy with the given session.voidsetUnwrap(boolean unwrap) final voidUnset this initializer's reference to session.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.hibernate.proxy.LazyInitializer
getImplementationClass, getPersistentClass
-
Constructor Details
-
Method Details
-
getEntityName
Description copied from interface:LazyInitializerThe entity-name of the entity our owning proxy represents.- Specified by:
getEntityNamein interfaceLazyInitializer- Returns:
- The entity-name.
-
getInternalIdentifier
Description copied from interface:LazyInitializerRetrieve the identifier value for the entity our owning proxy represents.- Specified by:
getInternalIdentifierin interfaceLazyInitializer- Returns:
- The identifier value.
-
getIdentifier
Description copied from interface:LazyInitializerRetrieve the identifier value for the entity our owning proxy represents, without initializing the proxy.When JPA proxy compliance is enabled the proxy is initialized.
- Specified by:
getIdentifierin interfaceLazyInitializer- Returns:
- The identifier value.
-
setIdentifier
Description copied from interface:LazyInitializerSet the identifier value for the entity our owning proxy represents.- Specified by:
setIdentifierin interfaceLazyInitializer- Parameters:
id- The identifier value.
-
isUninitialized
public final boolean isUninitialized()Description copied from interface:LazyInitializerIs the proxy uninitialized?- Specified by:
isUninitializedin interfaceLazyInitializer- Returns:
- True if uninitialized; false otherwise.
- See Also:
-
getSession
Description copied from interface:LazyInitializerGet the session to which this proxy is associated, or null if it is not attached.- Specified by:
getSessionin interfaceLazyInitializer- Returns:
- The associated session.
-
unsetSession
public final void unsetSession()Description copied from interface:LazyInitializerUnset this initializer's reference to session. It is assumed that the caller is also taking care or cleaning up the owning proxy's reference in the persistence context.Generally speaking this is intended to be called only during
Session.evict(java.lang.Object)andSession.clear()processing; most other use-cases should callLazyInitializer.setSession(org.hibernate.engine.spi.SharedSessionContractImplementor)instead.- Specified by:
unsetSessionin interfaceLazyInitializer
-
initialize
Description copied from interface:LazyInitializerInitialize the proxy, fetching the target entity if necessary.- Specified by:
initializein interfaceLazyInitializer- Throws:
HibernateException- Indicates a problem initializing the proxy.- See Also:
-
permissiveInitialization
protected void permissiveInitialization() -
initializeWithoutLoadIfPossible
public final void initializeWithoutLoadIfPossible()Attempt to initialize the proxy without loading anything from the database.This will only have an effect if the proxy is still attached to a session, and the entity being proxied has been loaded and added to the persistence context of that session since the proxy was created.
-
prepareForPossibleLoadingOutsideTransaction
protected void prepareForPossibleLoadingOutsideTransaction()Initialize internal state based on the currently attached session, in order to be ready to load data even after the proxy is detached from the session. -
isConnectedToSession
protected final boolean isConnectedToSession()Getter for property 'connectedToSession'.- Returns:
- Value for property 'connectedToSession'.
-
getImplementation
Description copied from interface:LazyInitializerReturn the underlying persistent object, initializing if necessary- Specified by:
getImplementationin interfaceLazyInitializer- Returns:
- The underlying target entity.
-
setImplementation
Description copied from interface:LazyInitializerInitialize the proxy manually by injecting its target.- Specified by:
setImplementationin interfaceLazyInitializer- Parameters:
target- The proxy target (the actual entity being proxied).
-
getImplementationEntityName
Description copied from interface:LazyInitializerGet the actual name of the entity, possibly initializing the entity if it has subclasses.- Specified by:
getImplementationEntityNamein interfaceLazyInitializer- Returns:
- The actual entity name.
-
getTarget
Getter for property "target".Same as
getImplementation()except that this method will not force initialization.- Returns:
- Value for property "target".
-
isReadOnlySettingAvailable
public final boolean isReadOnlySettingAvailable()Description copied from interface:LazyInitializerIs the proxy's read-only/modifiable setting available?- Specified by:
isReadOnlySettingAvailablein interfaceLazyInitializer- Returns:
- true, if the setting is available false, if the proxy is detached or its associated session is closed
-
isReadOnly
public final boolean isReadOnly()Description copied from interface:LazyInitializerIs the proxy read-only?The read-only/modifiable setting is not available when the proxy is detached or its associated session is closed.
To check if the read-only/modifiable setting is available:
- Specified by:
isReadOnlyin interfaceLazyInitializer- Returns:
- true, if this proxy is read-only; false, otherwise
- See Also:
-
setReadOnly
public final void setReadOnly(boolean readOnly) Description copied from interface:LazyInitializerSet 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.
- Specified by:
setReadOnlyin interfaceLazyInitializer- Parameters:
readOnly- if true, the associated proxy is made read-only; if false, the associated proxy is made modifiable.- See Also:
-
isReadOnlyBeforeAttachedToSession
Get the read-only/modifiable setting that should be put in effect when it is attached to a session.This method should only be called during serialization when read-only/modifiable setting is not available, that is, if
isReadOnlySettingAvailable() == false- Returns:
null, if the default setting should be used;true, for read-only;false, for modifiable- Throws:
IllegalStateException- ifisReadOnlySettingAvailable() == true
-
isAllowLoadOutsideTransaction
protected boolean isAllowLoadOutsideTransaction()Get whether the proxy can load data even if it's not attached to a session with an ongoing transaction.This method should only be called during serialization, and only makes sense after a call to
prepareForPossibleLoadingOutsideTransaction().- Returns:
trueif out-of-transaction loads are allowed,falseotherwise.
-
getSessionFactoryUuid
Get the session factory UUID.This method should only be called during serialization, and only makes sense after a call to
prepareForPossibleLoadingOutsideTransaction().- Returns:
- the session factory UUID.
-
getSessionFactoryName
Get the session factory name.This method should only be called during serialization, and only makes sense after a call to
prepareForPossibleLoadingOutsideTransaction().- Returns:
- the session factory name.
-
isUnwrap
public boolean isUnwrap()- Specified by:
isUnwrapin interfaceLazyInitializer
-
setUnwrap
public void setUnwrap(boolean unwrap) - Specified by:
setUnwrapin interfaceLazyInitializer
-