Class UpdateLockingStrategy

java.lang.Object
org.hibernate.dialect.lock.UpdateLockingStrategy
All Implemented Interfaces:
LockingStrategy

public class UpdateLockingStrategy extends Object implements LockingStrategy
A locking strategy where a lock is obtained via an update statement.

This strategy is not valid for read style locks.

Since:
3.2
  • Constructor Details

    • UpdateLockingStrategy

      public UpdateLockingStrategy(EntityPersister 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 Details

    • lock

      public void lock(Object id, Object version, Object object, int timeout, EventSource 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()