public enum LockModeType extends java.lang.Enum<LockModeType>
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
If transaction T1 calls for a lock of type
Lock modes must always prevent the phenomena P1 and P2.
In addition, calling a lock of type
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 The lock modes The semantics of requesting locks of type
If transaction T1 calls for a lock of type
A lock with The persistence implementation must support use of locks of type
When the lock cannot be obtained, and the database locking
failure results in transaction-level rollback, the provider must
throw the When the lock cannot be obtained, and the database locking
failure results in only statement-level rollback, the provider must
throw the LockModeType.OPTIMISTIC
and
LockModeType.OPTIMISTIC_FORCE_INCREMENT
are the
following.
LockModeType.OPTIMISTIC
on a versioned object,
the entity manager must ensure that neither of the following
phenomena can occur:
LockModeType.OPTIMISTIC_FORCE_INCREMENT
on a versioned object,
will also force an update (increment) to the entity's version
column.
PersistenceException
.
LockModeType.PESSIMISTIC_READ
, LockModeType.PESSIMISTIC_WRITE
, and
LockModeType.PESSIMISTIC_FORCE_INCREMENT
are used to immediately
obtain long-term database locks.
LockModeType.PESSIMISTIC_READ
, LockModeType.PESSIMISTIC_WRITE
, and
LockModeType.PESSIMISTIC_FORCE_INCREMENT
are the following.
LockModeType.PESSIMISTIC_READ
or
LockModeType.PESSIMISTIC_WRITE
on an object, the entity
manager must ensure that neither of the following phenomena can
occur:
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.
LockModeType.PESSIMISTIC_READ
LockModeType.PESSIMISTIC_WRITE
on a non-versioned entity as well as
on a versioned entity.
PessimisticLockException
and ensure that the JTA
transaction or EntityTransaction
has been marked for rollback.
LockTimeoutException
(and must not mark the transaction
for rollback).
Enum Constant and Description |
---|
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 . |
Modifier and Type | Method and Description |
---|---|
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.
|
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
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