Package org.hibernate.dialect.lock
Class PessimisticReadSelectLockingStrategy
- java.lang.Object
-
- org.hibernate.dialect.lock.AbstractSelectLockingStrategy
-
- org.hibernate.dialect.lock.PessimisticReadSelectLockingStrategy
-
- All Implemented Interfaces:
LockingStrategy
public class PessimisticReadSelectLockingStrategy 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_READ This class is a clone of SelectLockingStrategy.- Since:
- 3.5
- See Also:
Dialect.getForUpdateString(LockMode)
,Dialect.appendLockHint(LockOptions, String)
-
-
Constructor Summary
Constructors Constructor Description PessimisticReadSelectLockingStrategy(Lockable lockable, LockMode lockMode)
Construct a locking strategy based on SQL SELECT statements.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
generateLockString(int lockTimeout)
void
lock(Object id, Object version, Object object, int timeout, SharedSessionContractImplementor 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, getSkipLockedSql
-
-
-
-
Method Detail
-
lock
public void lock(Object id, Object version, Object object, int timeout, SharedSessionContractImplementor 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 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
-
generateLockString
protected String generateLockString(int lockTimeout)
- Specified by:
generateLockString
in classAbstractSelectLockingStrategy
-
-