「楽観的ロック」メカニズムを使用するのは初めてです-休止状態(Jboss内)とコンテナ管理トランザクション(CMT)を使用しています。エンティティの読み取りとエンティティの更新の間に、他の誰かが DB の同じエンティティ (行) を更新するシナリオを処理したいと考えています。そのような場合、私は例外をスローしたい..
エンティティに @Version のアノテーションを付けました - のように
@Version
private Long version;
これでバージョン管理に十分かどうか、または EntityManager.lock() API を明示的に呼び出す必要があるかどうか、私は混乱しています。
{
.
.
final QueryDTO queryDTO = entityManager.find(QueryDTO.class, id);
entityManager.lock(queryDTO, LockModeType.READ);
queryDTO.setStatus(updatedStatus);
entityManager.persist(queryDTO);
}
前もって感謝します、