Class UpdateLockingStrategy

  • All Implemented Interfaces:
    LockingStrategy

    public class UpdateLockingStrategy
    extends java.lang.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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.String generateLockString()  
      protected LockMode getLockMode()  
      void lock​(java.io.Serializable id, java.lang.Object version, java.lang.Object object, int timeout, SharedSessionContractImplementor session)
      Acquire an appropriate type of lock on the underlying data that will endure until the end of the current transaction.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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 - Indictates the type of lock to be acquired. Note that read-locks are not valid for this strategy.
    • Method Detail

      • lock

        public void lock​(java.io.Serializable id,
                         java.lang.Object version,
                         java.lang.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 java.lang.String generateLockString()
      • getLockMode

        protected LockMode getLockMode()