|
Oracle® Fusion Middleware Java API Reference for EclipseLink 11g Release 1 (11.1.1) E26376-01 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD | DETAIL: ENUM CONSTANTS | FIELD | METHOD |
java.lang.Object
java.lang.Enum<LockModeType>
javax.persistence.LockModeType
public enum LockModeType
Lock modes can be specified by means of passing a LockModeType
argument to one of the EntityManager
methods that take locks (lock
, find
, or refresh
) or to the Query.setLockMode()
or TypedQuery.setLockMode()
method.
Lock modes can be used to specify either optimistic or pessimistic locks.
Optimistic locks are specified using LockModeType.OPTIMISTIC
and LockModeType.OPTIMISTIC_FORCE_INCREMENT
. The lock mode type values LockModeType.READ
and LockModeType.WRITE
are synonyms of OPTIMISTIC
and OPTIMISTIC_FORCE_INCREMENT
respectively. The latter are to be preferred for new applications.
The semantics of requesting locks of type LockModeType.OPTIMISTIC
and LockModeType.OPTIMISTIC_FORCE_INCREMENT
are the following.
If transaction T1 calls for a lock of type LockModeType.OPTIMISTIC
on a versioned object, the entity manager must ensure that neither of the following phenomena can occur:
Lock modes must always prevent the phenomena P1 and P2.
In addition, calling a lock of type LockModeType.OPTIMISTIC_FORCE_INCREMENT
on a versioned object, will also force an update (increment) to the entity's version column.
The persistence implementation is not required to support the use of optimistic lock modes on non-versioned objects. When it cannot support a such lock call, it must throw the PersistenceException
.
The lock modes LockModeType.PESSIMISTIC_READ
, LockModeType.PESSIMISTIC_WRITE
, and LockModeType.PESSIMISTIC_FORCE_INCREMENT
are used to immediately obtain long-term database locks.
The semantics of requesting locks of type LockModeType.PESSIMISTIC_READ
, LockModeType.PESSIMISTIC_WRITE
, and LockModeType.PESSIMISTIC_FORCE_INCREMENT
are the following.
If transaction T1 calls for a lock of type LockModeType.PESSIMISTIC_READ
or LockModeType.PESSIMISTIC_WRITE
on an object, the entity manager must ensure that neither of the following phenomena can occur:
A lock with LockModeType.PESSIMISTIC_WRITE
can be obtained on an entity instance to force serialization among transactions attempting to update the entity data. A lock with LockModeType.PESSIMISTIC_READ
can be used to query data using repeatable-read semantics without the need to reread the data at the end of the transaction to obtain a lock, and without blocking other transactions reading the data. A lock with LockModeType.PESSIMISTIC_WRITE
can be used when querying data and there is a high likelihood of deadlock or update failure among concurrent updating transactions.
The persistence implementation must support use of locks of type LockModeType.PESSIMISTIC_READ
LockModeType.PESSIMISTIC_WRITE
on a non-versioned entity as well as on a versioned entity.
When the lock cannot be obtained, and the database locking failure results in transaction-level rollback, the provider must throw the PessimisticLockException
and ensure that the JTA transaction or EntityTransaction
has been marked for rollback.
When the lock cannot be obtained, and the database locking failure results in only statement-level rollback, the provider must throw the LockTimeoutException
(and must not mark the transaction for rollback).
Enum Constant Summary | |
---|---|
NONE No lock. |
|
OPTIMISTIC Optimistic lock. |
|
OPTIMISTIC_FORCE_INCREMENT Optimistic lock, with version update. |
|
PESSIMISTIC_FORCE_INCREMENT Pessimistic write lock, with version update. |
|
PESSIMISTIC_READ Pessimistic read lock. |
|
PESSIMISTIC_WRITE Pessimistic write lock. |
|
READ Synonymous with OPTIMISTIC . |
|
WRITE Synonymous with OPTIMISTIC_FORCE_INCREMENT . |
Method Summary | |
---|---|
static LockModeType |
valueOf(java.lang.String name) Returns the enum constant of this type with the specified name. |
static LockModeType[] |
values() Returns an array containing the constants of this enum type, in the order they are declared. |
Methods inherited from class java.lang.Enum |
---|
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf |
Methods inherited from class java.lang.Object |
---|
getClass, notify, notifyAll, wait, wait, wait |
Enum Constant Detail |
---|
public static final LockModeType READ
OPTIMISTIC
. OPTIMISTIC
is to be preferred for new applications.public static final LockModeType WRITE
OPTIMISTIC_FORCE_INCREMENT
. OPTIMISTIC_FORCE_IMCREMENT
is to be preferred for new applications.public static final LockModeType OPTIMISTIC
public static final LockModeType OPTIMISTIC_FORCE_INCREMENT
public static final LockModeType PESSIMISTIC_READ
public static final LockModeType PESSIMISTIC_WRITE
public static final LockModeType PESSIMISTIC_FORCE_INCREMENT
public static final LockModeType NONE
Method Detail |
---|
public static LockModeType[] values()
for (LockModeType c : LockModeType.values()) System.out.println(c);
public static LockModeType valueOf(java.lang.String name)
name
- the name of the enum constant to be returned.java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null
|
Oracle® Fusion Middleware Java API Reference for EclipseLink 11g Release 1 (11.1.1) E26376-01 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | ENUM CONSTANTS | FIELD | METHOD | DETAIL: ENUM CONSTANTS | FIELD | METHOD |