8.22.48 @QueryHint
(1) 説明
データベース固有のクエリのヒントを指定するアノテーションです。
悲観的ロックやエンティティのキャッシュ機能の設定ができます。
適用可能要素は,@NamedQuery,または@NamedNativeQueryのhints要素です。
(2) 属性
@QueryHintの属性の一覧を次の表に示します。
属性名 |
任意/必須 |
属性の説明 |
---|---|---|
必須 |
ヒントの名前を指定する属性です。 |
|
必須 |
ヒントの値を指定する属性です。 |
CJPAプロバイダで対応する属性の詳細を次に示します。
(a) name属性
- 型
-
String
- 説明
-
使用するヒントの名前を指定する属性です。指定できる値は次のとおりです。
- cosminexus.jpa.pessimistic-lock
-
悲観的ロックを使用するかどうかを指定するヒントの名前です。
- デフォルト値
-
なし
(b) value属性
- 型
-
String
- 説明
-
ヒントの値を指定する属性です。name属性で指定したヒントの名前に合わせて,次の値を指定します。
- name属性でcosminexus.jpa.pessimistic-lockを指定した場合の指定値
-
-
NoLock:悲観的ロックを使用しない場合に指定します。
-
Lock:悲観的ロックを使用する場合に指定します。対象となるテーブルがすでにロックされている場合は,解放されるまで待ちます。このとき発行されるSQLを使用するデータベースごとに示します。
Oracleの場合:SELECT.... FOR UPDATE
HiRDBの場合:SELECT....WITH EXCLUSIVE LOCK
-
LockNoWait:悲観的ロックを使用する場合に指定します。対象となるテーブルがすでにロックされている場合は,例外が発生します。このとき発行されるSQLを使用するデータベースごとに示します。
Oracleの場合:SELECT.... FOR UPDATE NO WAIT
HiRDBの場合:SELECT....WITH EXCLUSIVE LOCK NO WAIT
-
- デフォルト値
-
- name属性でcosminexus.jpa.pessimistic-lockを指定した場合
-
NoLock