Class AllFieldsLockingPolicy

All Implemented Interfaces:
Serializable, Cloneable, org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy

public class AllFieldsLockingPolicy extends FieldsLockingPolicy

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:
Peter Krogh
  • 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

      public void addLockValuesToTranslationRow(ObjectLevelModifyQuery query)
      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 interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicy
      Specified by:
      addLockValuesToTranslationRow in class FieldsLockingPolicy
    • 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 class FieldsLockingPolicy