## org.hibernate.dialect.lock
Class PessimisticReadUpdateLockingStrategy

    java.lang.Object
      org.hibernate.dialect.lock.PessimisticReadUpdateLockingStrategy

All Implemented Interfaces:
  LockingStrategy

    public class PessimisticReadUpdateLockingStrategy

extends Object
implements LockingStrategy

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

This strategy is valid for LockMode.PESSIMISTIC_READ This class is a clone of UpdateLockingStrategy.

Since:
  3.5
Author:
  Steve Ebersole, Scott Marlow

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

Method Summary
`protected String` `generateLockString()`
`protected LockMode` `getLockMode()`
`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 java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PessimisticReadUpdateLockingStrategy

    public PessimisticReadUpdateLockingStrategy(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(Serializable id,
                     Object version,
                     Object object,
                     int timeout,
                     SessionImplementor 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 optimistic lock failure as part of acquiring the requested database lock.
    `JDBCException` - Indicates errors from the `JDBC` driver.
  See Also:
    `LockingStrategy.lock(java.io.Serializable, java.lang.Object, java.lang.Object, int, org.hibernate.engine.SessionImplementor)`

### generateLockString

    protected String generateLockString()

### getLockMode

    protected LockMode getLockMode()

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