Class UpdateLockingStrategy

  • All Implemented Interfaces:
    LockingStrategy

    public class UpdateLockingStrategy
    extends Object
    implements LockingStrategy
    A locking strategy where the locks are obtained through update statements.

    This strategy is not valid for read style locks.

    Since:
    3.2
    • Constructor Detail

      • UpdateLockingStrategy

        public UpdateLockingStrategy​(Lockable lockable,
                                     LockMode lockMode)
        Construct a locking strategy based on SQL UPDATE statements.
        Parameters:
        lockable - The metadata for the entity to be locked.
        lockMode - Indicates the type of lock to be acquired. Note that read-locks are not valid for this strategy.
    • Method Detail

      • lock

        public void lock​(Object id,
                         Object version,
                         Object object,
                         int timeout,
                         SharedSessionContractImplementor session)
                  throws StaleObjectStateException,
                         JDBCException
        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
        Throws:
        StaleObjectStateException - Indicates an inability to locate the database row as part of acquiring the requested lock.
        JDBCException
      • generateLockString

        protected String generateLockString()
      • getLockMode

        protected LockMode getLockMode()