2.6.53 @QueryHint

<この項の構成>
(1) 説明
(2) 属性

(1) 説明

データベース固有のクエリのヒントを指定するアノテーションです。

悲観的ロックやエンティティのキャッシュ機能の設定ができます。

適用可能要素は,@NamedQuery,または@NamedNativeQueryのhints要素です。

(2) 属性

@QueryHintの属性の一覧を次の表に示します。

属性名任意/必須属性の説明
name必須ヒントの名前を指定する属性です。
value必須ヒントの値を指定する属性です。

Cosminexus JPAプロバイダで対応する属性の詳細を次に示します。

(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