Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.hibernate.dialect.lock
Class SelectLockingStrategy

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

All Implemented Interfaces:
  LockingStrategy

Direct Known Subclasses:
  HSQLDialect.ReadUncommittedLockingStrategy

    public class SelectLockingStrategy

extends Object
implements LockingStrategy

A 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.

Since:
  3.2
Author:
  Steve Ebersole
See Also:
  `Dialect.getForUpdateString(org.hibernate.LockMode)`, `Dialect.appendLockHint(org.hibernate.LockMode, String)`

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

Method Summary
`protected String` | `generateLockString()`
`protected LockMode` | `getLockMode()`
`void` | `lock(Serializable id, Object version, Object object, 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

### SelectLockingStrategy

    public SelectLockingStrategy(Lockable lockable,
                                 LockMode lockMode)

  Construct a locking strategy based on SQL SELECT statements.

  Parameters:
    `lockable` - The metadata for the entity to be locked.
    `lockMode` - Indictates the type of lock to be acquired.

Method Detail

### lock

    public void lock(Serializable id,
                     Object version,
                     Object object,
                     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)
    `session` - The session from which the lock request originated
  Throws:
    `StaleObjectStateException` - Indicates an optimisitic lock failure as part of acquiring the requested database lock.
    `JDBCException`
  See Also:
    `LockingStrategy.lock(java.io.Serializable, java.lang.Object, java.lang.Object, org.hibernate.engine.SessionImplementor)`

### getLockMode

    protected LockMode getLockMode()

### generateLockString

    protected String generateLockString()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD