Package org.hibernate.dialect.lock
Class PessimisticReadSelectLockingStrategy
java.lang.Object
org.hibernate.dialect.lock.AbstractSelectLockingStrategy
org.hibernate.dialect.lock.PessimisticReadSelectLockingStrategy
- All Implemented Interfaces:
LockingStrategy
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:
-
Constructor Summary
ConstructorsConstructorDescriptionPessimisticReadSelectLockingStrategy(Lockable lockable, LockMode lockMode) Construct a locking strategy based on SQL SELECT statements. -
Method Summary
Modifier and TypeMethodDescriptionprotected StringgenerateLockString(int lockTimeout) voidlock(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 org.hibernate.dialect.lock.AbstractSelectLockingStrategy
determineSql, getLockable, getLockMode, getNoWaitSql
-
Constructor Details
-
PessimisticReadSelectLockingStrategy
Construct a locking strategy based on SQL SELECT statements.- Parameters:
lockable- The metadata for the entity to be locked.lockMode- Indicates 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.- 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:
-
generateLockString
- Specified by:
generateLockStringin classAbstractSelectLockingStrategy
-