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
- Author:
- Steve Ebersole, Scott Marlow
- See Also:
Dialect.getForUpdateString(org.hibernate.LockMode)
,
Dialect.appendLockHint(org.hibernate.LockMode, String)
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PessimisticReadSelectLockingStrategy
public PessimisticReadSelectLockingStrategy(Lockable lockable,
LockMode lockMode)
- 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.
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.
- 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:
LockingStrategy.lock(java.io.Serializable, java.lang.Object, java.lang.Object, int, org.hibernate.engine.SessionImplementor)
generateLockString
protected String generateLockString(int lockTimeout)
- Specified by:
generateLockString
in class AbstractSelectLockingStrategy
Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.