ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス
12c (12.1.2)
E48005-01
  目次へ移動
目次

前
 
次
 

pessimistic-lock

eclipselink.pessimistic-lockを使用して、Oracle TopLinkでペシミスティック・ロックを使用するかどうかを指定します。

表4-25は、この問合せヒントの有効値を説明しています。

表4-25 org.eclipse.persistence.config.PessimisticLockの有効値

Value 説明

NoLock

(デフォルト)ペシミスティック・ロックは使用されません。

Lock

Oracle TopLinkにより、SELECT .... FOR UPDATE文が発行されます。

LockNoWait

Oracle TopLinkにより、SELECT .... FOR UPDATE NO WAIT文が発行されます。


使用方法

ペシミスティック・ロックを使用する主な利点は、ロックが取得されると、編集が正常に行われることが保証される点です。これは、オプティミスティック・ロックが原因で多数のオプティミスティック・ロック・エラーが発生する可能性がある高並列アプリケーションにおいて有用です。

ペシミスティック・ロックの短所の1つは、このロックでは追加のデータベース・リソースが必要となるため、編集中にデータベースのトランザクションと接続を保持する必要があるという点です。また、ペシミスティック・ロックがデッドロックの原因となり、同時実行性の問題が発生する場合もあります。

例4-50に、JPA問合せでこのヒントを使用する方法を示します。

例4-50 JPA問合せでのpessimistic-lockの使用

import org.eclipse.persistence.config.PessimisticLock;
 import org.eclipse.persistence.config.QueryHints;
 query.setHint(QueryHints.PESSIMISTIC_LOCK, PessimisticLock.LockNoWait);

例4-51に、@QueryHint注釈でこのヒントを使用する方法を示します。

例4-51 @QueryHint注釈でのpessimistic-lockの使用

import org.eclipse.persistence.config.PessimisticLock;
 import org.eclipse.persistence.config.QueryHints;
 @QueryHint(name=QueryHints.PESSIMISTIC_LOCK, value=PessimisticLock.LockNoWait);

関連項目

詳細は、次を参照してください。