3.11. Locking
The default locking system in EJB3 is mostly based on optimistic locking (ie using a version column to check any concurrency issues). EJB3 has defined an additional mechanism to increase the concurrency guaranties. You can apply a lock on a given entity (and it's associated entities if
LOCK
is cascaded) through the lock(Object entity)
method. Depending on the concurrency guaranties you requires, you choose a lock mode:
LockMode.READ
prevents dirty-reads and non repeatable read on a given entity.LockMode.WRITE
prevents dirty-reads and non repeatable read on a given entity and force an increase of the version number if any.