Class OptimisticForceIncrementLockingStrategy

  • All Implemented Interfaces:
    LockingStrategy

    public class OptimisticForceIncrementLockingStrategy
    extends java.lang.Object
    implements LockingStrategy
    An optimistic locking strategy that forces an increment of the version (after verifying that version hasn't changed). This takes place just prior to transaction commit.

    This strategy is valid for LockMode.OPTIMISTIC_FORCE_INCREMENT

    Since:
    3.5
    • Constructor Detail

      • OptimisticForceIncrementLockingStrategy

        public OptimisticForceIncrementLockingStrategy​(Lockable lockable,
                                                       LockMode lockMode)
        Construct locking strategy.
        Parameters:
        lockable - The metadata for the entity to be locked.
        lockMode - Indicates the type of lock to be acquired.
    • Method Detail

      • lock

        public void lock​(java.io.Serializable id,
                         java.lang.Object version,
                         java.lang.Object object,
                         int timeout,
                         SharedSessionContractImplementor session)
        Description copied from interface: LockingStrategy
        Acquire an appropriate type of lock on the underlying data that will endure until the end of the current transaction.
        Specified by:
        lock in interface LockingStrategy
        Parameters:
        id - The id of the row to be locked
        version - The current version (or null if not versioned)
        object - The object logically being locked (currently not used)
        timeout - timeout in milliseconds, 0 = no wait, -1 = wait indefinitely
        session - The session from which the lock request originated
      • getLockMode

        protected LockMode getLockMode()