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
FieldsModifier 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, valueFields inherited from interface org.eclipse.persistence.indirection.ValueHolderInterface
shouldToStringInstantiate -
Constructor Summary
Constructors -
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).booleanAnswers 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:DatabaseValueHolderAnswers 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:
isPessimisticLockingValueHolderin classDatabaseValueHolder<T>
-
instantiateForUnitOfWorkValueHolder
Description copied from class:DatabaseValueHolderTriggers 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:
instantiateForUnitOfWorkValueHolderin classDatabaseValueHolder<T>
-
getRow
Description copied from class:DatabaseValueHolderReturn the row.- Overrides:
getRowin classDatabaseValueHolder<T>
-
getSession
Description copied from class:DatabaseValueHolderReturn the session.- Overrides:
getSessionin classDatabaseValueHolder<T>
-
instantiate
If the original value holder was not instantiated, then first instantiate it to obtain the backup value.- Specified by:
instantiatein classDatabaseValueHolder<T>
-
getUnitOfWorkValueHolder
Return the original uow clone's value holder.
-