Class AllFieldsLockingPolicy
java.lang.Object
org.eclipse.persistence.descriptors.FieldsLockingPolicy
org.eclipse.persistence.descriptors.AllFieldsLockingPolicy
- All Implemented Interfaces:
Serializable
,Cloneable
,org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy
Purpose: An implementation of the OptimisticLockingPolicy interface. This policy compares every field in the table in the WHERE clause when doing an update or a delete. If any field has been changed, an optimistic locking exception will be thrown.
NOTE: This policy can only be used inside a unit of work.
- See Also:
- Author:
- Peter Krogh
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy
org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy.LockOnChange
-
Field Summary
Fields inherited from class org.eclipse.persistence.descriptors.FieldsLockingPolicy
allNonPrimaryKeyFields, descriptor
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
INTERNAL: Values to be included in the locking mechanism are added to the translation row.protected List<org.eclipse.persistence.internal.helper.DatabaseField>
getFieldsToCompare
(org.eclipse.persistence.internal.helper.DatabaseTable table, org.eclipse.persistence.internal.sessions.AbstractRecord transRow, org.eclipse.persistence.internal.sessions.AbstractRecord modifyRow) INTERNAL: Returns the fields that should be compared in the where clause.Methods inherited from class org.eclipse.persistence.descriptors.FieldsLockingPolicy
addLockFieldsToUpdateRow, buildAllNonPrimaryKeyFields, buildDeleteExpression, buildExpression, buildUpdateExpression, clone, compareWriteLockValues, getAllNonPrimaryKeyFields, getAllNonPrimaryKeyFields, getBaseValue, getLockOnChangeMode, getValueToPutInCache, getVersionDifference, getWriteLockField, getWriteLockUpdateExpression, getWriteLockValue, initialize, initializeProperties, isCascaded, isNewerVersion, isNewerVersion, isPrimaryKey, isStoredInCache, mergeIntoParentCache, mergeIntoParentCache, setAllNonPrimaryKeyFields, setDescriptor, setLockOnChangeMode, setupWriteFieldsForInsert, shouldUpdateVersionOnMappingChange, shouldUpdateVersionOnOwnedMappingChange, supportsWriteLockValuesComparison, updateRowAndObjectForUpdate, validateDelete, validateUpdate, verifyUsage
-
Constructor Details
-
AllFieldsLockingPolicy
public AllFieldsLockingPolicy()PUBLIC: Create a new all fields locking policy. A field locking policy is based on locking on all fields by comparing with their previous values to detect field-level collisions. Note: the unit of work must be used for all updates when using field locking.
-
-
Method Details
-
addLockValuesToTranslationRow
INTERNAL: Values to be included in the locking mechanism are added to the translation row. Set the translation row to all the original field values.- Specified by:
addLockValuesToTranslationRow
in interfaceorg.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy
- Specified by:
addLockValuesToTranslationRow
in classFieldsLockingPolicy
-
getFieldsToCompare
protected List<org.eclipse.persistence.internal.helper.DatabaseField> getFieldsToCompare(org.eclipse.persistence.internal.helper.DatabaseTable table, org.eclipse.persistence.internal.sessions.AbstractRecord transRow, org.eclipse.persistence.internal.sessions.AbstractRecord modifyRow) INTERNAL: Returns the fields that should be compared in the where clause. In this case, it is all the fields, except for the primary key and class indicator.- Specified by:
getFieldsToCompare
in classFieldsLockingPolicy
-