lock(entity, lockMode) - JPA EntityManager's method
Method javax.persistence.EntityManager
void lock(
Object entity,
LockModeType lockMode
)
If a pessimistic lock mode type is specified and the entity contains a version attribute, the persistence provider must also perform optimistic version checks when obtaining the database lock. If these checks fail, the OptimisticLockException
will be thrown.
If the lock mode type is pessimistic and the entity instance is found but cannot be locked:
- the
PessimisticLockException
will be thrown if the database locking failure causes transaction-level rollback - the
LockTimeoutException
will be thrown if the database locking failure causes only statement-level rollback
- Parameters:
-
entity
- entity instance -
lockMode
- lock mode
- Throws:
-
IllegalArgumentException
- if the instance is not an entity or is a detached entity -
TransactionRequiredException
- if there is no transaction -
EntityNotFoundException
- if the entity does not exist in the database when pessimistic locking is performed -
OptimisticLockException
- if the optimistic version check fails -
PessimisticLockException
- if pessimistic locking fails and the transaction is rolled back -
LockTimeoutException
- if pessimistic locking fails and only the statement is rolled back -
PersistenceException
- if an unsupported lock call is made
- Since:
- JPA 1.0