## org.hibernate.dialect.lock
Class OptimisticForceIncrementLockingStrategy

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

All Implemented Interfaces:
  LockingStrategy

    public class OptimisticForceIncrementLockingStrategy

extends Object
implements LockingStrategy

An optimistic locking strategy that forces an increment of the version (after verifying that version hasn't changed). This takes place just prior to transaction commit.

This strategy is valid for LockMode.OPTIMISTIC_FORCE_INCREMENT

Since:
  3.5
Author:
  Scott Marlow

Constructor Summary
`OptimisticForceIncrementLockingStrategy(Lockable lockable, LockMode lockMode)` Construct locking strategy.

Method Summary
`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

### OptimisticForceIncrementLockingStrategy

    public OptimisticForceIncrementLockingStrategy(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 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)`

### getLockMode

    protected LockMode getLockMode()

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