org.hibernate.dialect.lock
Interface LockingStrategy
- All Known Implementing Classes:
- HSQLDialect.ReadUncommittedLockingStrategy, SelectLockingStrategy, UpdateLockingStrategy
public interface LockingStrategy
A strategy abstraction for how locks are obtained in the underlying database.
All locking provided implemenations assume the underlying database supports
(and that the connection is in) at least read-committed transaction isolation.
The most glaring exclusion to this is HSQLDB which only offers support for
READ_UNCOMMITTED isolation.
- Since:
- 3.2
- Author:
- Steve Ebersole
- See Also:
Dialect.getLockingStrategy(org.hibernate.persister.entity.Lockable, org.hibernate.LockMode)
lock
void lock(Serializable id,
Object version,
Object object,
SessionImplementor session)
throws StaleObjectStateException,
JDBCException
- 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)session
- The session from which the lock request originated
- Throws:
StaleObjectStateException
- Indicates an optimisitic lock failure
as part of acquiring the requested database lock.
JDBCException