355 words
find(entityClass, primaryKey, lockMode) - JPA EntityManager's method
Methodjavax.persistence.EntityManager
T find(
Class<T> entityClass,
Object primaryKey,
LockModeType lockMode
)
Find by primary key and lock.
Search for an entity of the specified class and primary key
and lock it with respect to the specified lock type.
If the entity instance is contained in the persistence context,
it is returned from there, and the effect of this method is
the same as if the lock method had been called on the entity.
If the entity is found within the persistence context and the
lock mode type is pessimistic and the entity has a version
attribute, the persistence provider must 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
PessimisticLockExceptionwill be thrown if the database locking failure causes transaction-level rollback - the
LockTimeoutExceptionwill be thrown if the database locking failure causes only statement-level rollback
- Parameters:
entityClass- entity classprimaryKey- primary keylockMode- lock mode
- Returns:
- the found entity instance or null if the entity does not exist
- Throws:
IllegalArgumentException- if the first argument does not denote an entity type or the second argument is not a valid type for that entity's primary key or is nullTransactionRequiredException- if there is no transaction and a lock mode other than NONE is specifiedOptimisticLockException- if the optimistic version check failsPessimisticLockException- if pessimistic locking fails and the transaction is rolled backLockTimeoutException- if pessimistic locking fails and only the statement is rolled backPersistenceException- if an unsupported lock call is made
- Since:
- JPA 2.0
This documentation page is derived (with some adjustments) from the open source JPA 2 RI (EclipseLink)
and is available under the terms of the Eclipse Public License, v. 1.0 and Eclipse Distribution License, v. 1.0.
and is available under the terms of the Eclipse Public License, v. 1.0 and Eclipse Distribution License, v. 1.0.
Object Relational Mapping (ORM) JPA 2 providers include Hibernate, EclipseLink, TopLink, OpenJPA and DataNucleus.
Object DB is not an ORM JPA implementation but an Object Database for Java with built in JPA 2 support.