## org.hibernate.dialect.lock
Class PessimisticWriteSelectLockingStrategy

    java.lang.Object
      org.hibernate.dialect.lock.AbstractSelectLockingStrategy
          org.hibernate.dialect.lock.PessimisticWriteSelectLockingStrategy

All Implemented Interfaces:
  LockingStrategy

    public class PessimisticWriteSelectLockingStrategy

extends AbstractSelectLockingStrategy

A pessimistic locking strategy where the locks are obtained through select statements.

For non-read locks, this is achieved through the Dialect's specific SELECT ... FOR UPDATE syntax. This strategy is valid for LockMode.PESSIMISTIC_WRITE This class is a clone of SelectLockingStrategy.

Since:
  3.5
See Also:
  `Dialect.getForUpdateString(org.hibernate.LockMode)`, `Dialect.appendLockHint(org.hibernate.LockMode, String)`

Constructor Summary
`PessimisticWriteSelectLockingStrategy(Lockable lockable, LockMode lockMode)` Construct a locking strategy based on SQL SELECT statements.

Method Summary
`protected String` `generateLockString(int lockTimeout)`
`void` `lock(Serializable id, Object version, Object object, int timeout, SessionImplementor 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 org.hibernate.dialect.lock.AbstractSelectLockingStrategy
`determineSql, getLockable, getLockMode, getNoWaitSql`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PessimisticWriteSelectLockingStrategy

    public PessimisticWriteSelectLockingStrategy(Lockable lockable,
                                                 LockMode lockMode)

  Construct a locking strategy based on SQL SELECT statements.

  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(Serializable id,
                     Object version,
                     Object object,
                     int timeout,
                     SessionImplementor 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.

  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

### generateLockString

    protected String generateLockString(int lockTimeout)

  Specified by:
    `generateLockString` in class `AbstractSelectLockingStrategy`

Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.