Package org.hibernate.dialect.lock
Class AbstractSelectLockingStrategy
- java.lang.Object
-
- org.hibernate.dialect.lock.AbstractSelectLockingStrategy
-
- All Implemented Interfaces:
LockingStrategy
- Direct Known Subclasses:
PessimisticReadSelectLockingStrategy,PessimisticWriteSelectLockingStrategy,SelectLockingStrategy
public abstract class AbstractSelectLockingStrategy extends Object implements LockingStrategy
BaseLockingStrategyimplementation to support implementations based on issuing SQLSELECTstatements. For non-read locks, this is achieved via the dialect's nativeSELECT ... FOR UPDATEsyntax.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractSelectLockingStrategy(Lockable lockable, LockMode lockMode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected HibernateExceptionconvertException(Object entity, JDBCException ex)protected StringdetermineSql(int timeout)protected StringgenerateLockString(int lockTimeout)protected LockablegetLockable()protected LockModegetLockMode()protected StringgetNoWaitSql()protected StringgetSkipLockedSql()voidlock(Object id, Object version, Object object, int timeout, EventSource session)Acquire an appropriate type of lock on the underlying data that will endure until the end of the current transaction.
-
-
-
Method Detail
-
getLockable
protected Lockable getLockable()
-
getLockMode
protected LockMode getLockMode()
-
generateLockString
protected String generateLockString(int lockTimeout)
-
lock
public void lock(Object id, Object version, Object object, int timeout, EventSource 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 inability to locate the database row as part of acquiring the requested lock.JDBCException
-
convertException
protected HibernateException convertException(Object entity, JDBCException ex)
-
determineSql
protected String determineSql(int timeout)
-
getNoWaitSql
protected String getNoWaitSql()
-
getSkipLockedSql
protected String getSkipLockedSql()
-
-