Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


8.22.48 @QueryHint

〈この項の構成〉

(1) 説明

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

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

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

(2) 属性

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

属性名

任意/必須

属性の説明

name

必須

ヒントの名前を指定する属性です。

value

必須

ヒントの値を指定する属性です。

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