Module org.eclipse.persistence.core
Class BackupValueHolder<T>
java.lang.Object
org.eclipse.persistence.internal.indirection.DatabaseValueHolder<T>
org.eclipse.persistence.internal.indirection.BackupValueHolder<T>
- All Implemented Interfaces:
Serializable
,Cloneable
,ValueHolderInterface<T>
,WeavedAttributeValueHolderInterface<T>
Used as the backup value holder in the unit of work for transparent indirection.
This ensure that a reference to the original value holder is held in case the
transparent collection or proxy is replace without first instantiating the original.
- Since:
- 10.1.3
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected ValueHolderInterface
<T> Stores the original uow clone's value holder.Fields inherited from class org.eclipse.persistence.internal.indirection.DatabaseValueHolder
isCoordinatedWithProperty, isInstantiated, row, session, value
Fields inherited from interface org.eclipse.persistence.indirection.ValueHolderInterface
shouldToStringInstantiate
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetRow()
Return the row.Return the session.Return the original uow clone's value holder.If the original value holder was not instantiated, then first instantiate it to obtain the backup value.instantiateForUnitOfWorkValueHolder
(UnitOfWorkValueHolder<T> unitOfWorkValueHolder) Triggers UnitOfWork valueholders directly without triggering the wrapped valueholder (this).boolean
Answers if this valueholder is a pessimistic locking one.Methods inherited from class org.eclipse.persistence.internal.indirection.DatabaseValueHolder
clone, getValue, getValue, getWrappedValueHolder, isCoordinatedWithProperty, isEasilyInstantiated, isInstantiated, isNewlyWeavedValueHolder, isSerializedRemoteUnitOfWorkValueHolder, isTransactionalValueHolder, postInstantiate, privilegedSetValue, releaseWrappedValueHolder, resetFields, setInstantiated, setIsCoordinatedWithProperty, setIsNewlyWeavedValueHolder, setRow, setSession, setUninstantiated, setValue, shouldAllowInstantiationDeferral, toString
-
Field Details
-
unitOfWorkValueHolder
Stores the original uow clone's value holder.
-
-
Constructor Details
-
BackupValueHolder
-
-
Method Details
-
isPessimisticLockingValueHolder
public boolean isPessimisticLockingValueHolder()Description copied from class:DatabaseValueHolder
Answers if this valueholder is a pessimistic locking one. Such valueholders are special in that they can be triggered multiple times by different UnitsOfWork. Each time a lock query will be issued. Hence even if instantiated it may have to be instantiated again, and once instantiated all fields can not be reset. Note: Implementations of this method are not necessarily thread-safe. They must be used in a synchronizaed manner- Specified by:
isPessimisticLockingValueHolder
in classDatabaseValueHolder<T>
-
instantiateForUnitOfWorkValueHolder
Description copied from class:DatabaseValueHolder
Triggers UnitOfWork valueholders directly without triggering the wrapped valueholder (this).When in transaction and/or for pessimistic locking the UnitOfWorkValueHolder needs to be triggered directly without triggering the wrapped valueholder. However only the wrapped valueholder knows how to trigger the indirection, i.e. it may be a batchValueHolder, and it stores all the info like the row and the query. Note: Implementations of this method are not necessarily thread-safe. They must be used in a synchronized manner
- Specified by:
instantiateForUnitOfWorkValueHolder
in classDatabaseValueHolder<T>
-
getRow
Description copied from class:DatabaseValueHolder
Return the row.- Overrides:
getRow
in classDatabaseValueHolder<T>
-
getSession
Description copied from class:DatabaseValueHolder
Return the session.- Overrides:
getSession
in classDatabaseValueHolder<T>
-
instantiate
If the original value holder was not instantiated, then first instantiate it to obtain the backup value.- Specified by:
instantiate
in classDatabaseValueHolder<T>
-
getUnitOfWorkValueHolder
Return the original uow clone's value holder.
-