Package org.hibernate.dialect.lock
Class OptimisticLockingStrategy
java.lang.Object
org.hibernate.dialect.lock.OptimisticLockingStrategy
- All Implemented Interfaces:
LockingStrategy
An optimistic locking strategy that verifies that the version hasn't changed (prior to transaction commit).
This strategy is valid for LockMode.OPTIMISTIC
- Since:
- 3.5
-
Constructor Summary
ConstructorsConstructorDescriptionOptimisticLockingStrategy(Lockable lockable, LockMode lockMode) Construct locking strategy. -
Method Summary
Modifier and TypeMethodDescriptionprotected LockModevoidlock(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.
-
Constructor Details
-
OptimisticLockingStrategy
Construct locking strategy.- Parameters:
lockable- The metadata for the entity to be locked.lockMode- Indictates 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 Description copied from interface:LockingStrategyAcquire an appropriate type of lock on the underlying data that will endure until the end of the current transaction.- Specified by:
lockin interfaceLockingStrategy- Parameters:
id- The id of the row to be lockedversion- 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 indefinitelysession- 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:
-
getLockMode
-