Class PessimisticForceIncrementLockingStrategy

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

public class PessimisticForceIncrementLockingStrategy extends Object implements LockingStrategy
A pessimistic locking strategy that increments the version immediately (obtaining an exclusive write lock).

This strategy is valid for LockMode.PESSIMISTIC_FORCE_INCREMENT

Since:
3.5
  • Constructor Details

    • PessimisticForceIncrementLockingStrategy

      public PessimisticForceIncrementLockingStrategy(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 Details

    • lock

      public void lock(Serializable id, Object version, Object object, int timeout, SessionImplementor session) throws StaleObjectStateException, JDBCException
      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 optimistic lock failure as part of acquiring the requested database lock.
      JDBCException - Indicates errors from the JDBC driver.
    • getLockMode

      protected LockMode getLockMode()
      Retrieve the specific lock mode defined.
      Returns:
      The specific lock mode.