public class SelectLockingStrategy extends AbstractSelectLockingStrategy
A locking strategy where the locks are obtained through select statements. <p/> For non-read locks, this is achieved through the Dialect’s specific SELECT … FOR UPDATE syntax.
Constructor and Description |
---|
SelectLockingStrategy(Lockable lockable,
LockMode lockMode)
Construct a locking strategy based on SQL SELECT statements.
|
Modifier and Type | Method and Description |
---|---|
protected String |
generateLockString(int timeout) |
void |
lock(Serializable 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.
|
determineSql, getLockable, getLockMode, getNoWaitSql, getSkipLockedSql
public void lock(Serializable id, Object version, Object object, int timeout, SharedSessionContractImplementor session) throws StaleObjectStateException, JDBCException
LockingStrategy
Acquire an appropriate type of lock on the underlying data that will endure until the end of the current transaction.
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 originatedStaleObjectStateException
- Indicates an inability to locate the database row as part of acquiring
the requested lock.JDBCException
protected String generateLockString(int timeout)
generateLockString
in class AbstractSelectLockingStrategy
Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.