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
Base
LockingStrategy implementation to support implementations
based on issuing SQL SELECT statements. For non-read locks,
this is achieved via the dialect's native SELECT ... FOR UPDATE
syntax.- Author:
- Steve Ebersole
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSelectLockingStrategy(Lockable lockable, LockMode lockMode) -
Method Summary
Modifier and TypeMethodDescriptionprotected HibernateExceptionconvertException(Object entity, JDBCException ex) protected StringdetermineSql(int timeout) protected StringgenerateLockString(int lockTimeout) protected Lockableprotected LockModeprotected Stringprotected Stringvoidlock(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.
-
Constructor Details
-
AbstractSelectLockingStrategy
-
-
Method Details
-
getLockable
-
getLockMode
-
generateLockString
-
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
-
determineSql
-
getNoWaitSql
-
getSkipLockedSql
-