Package org.iplass.mtp.entity.query.hint
package org.iplass.mtp.entity.query.hint
-
ClassDescriptionEQLに対して、実際にDataStoreにクエリー発行する際にバインド変数(JDBCの場合PrepareStatement)を 利用することを指定するヒント句です。EQLの実行結果のキャッシュを行うヒント句です。 キャッシュのスコープ、キャッシュの有効期間(秒)を指定可能です。
CahceScopeがTRANSACTIONの場合は、同一トランザクション内のみ当該キャッシュが有効です。 CahceScopeがGLOBAL(デフォルト)の場合は、共有キャッシュとなります。 CahceScope.GLOBAL、CahceScope.GLOBAL_KEEP、CahceScope.GLOBAL_RELOADの場合は、有効期間(秒)を指定することが可能です。 有効期間(秒)未指定の場合は無期限(デフォルトは無期限に設定。ただし、バックエンドで利用しているCacheStoreの設定で有効期限を設定している場合は、その限り)となります。 CacheScope.GLOBAL利用する際は、Entity定義にてqueryCacheを有効化した上で、EQLのヒント句をつける必要があります。
EQLでの記述例:
select /*+ cache */ a, b from SampleEntity where c.x='hoge' and a=1 and b=15
や、
select /*+ cache(transaction) */ a, b from SampleEntity where c.x='hoge' and a=1 and b=15
や、
select /*+ cache(60) */ a, b from SampleEntity where c.x='hoge' and a=1 and b=15
select /*+ cache(keep, 60) */ a, b from SampleEntity where c.x='hoge' and a=1 and b=15
select /*+ cache(reload, 60) */ a, b from SampleEntity where c.x='hoge' and a=1 and b=15キャッシュのスコープを表す列挙型です。EQLレベルでのヒント句の抽象クラスです。queryの際のfetchSizeを指定するヒント句です。ヒント句を表す抽象クラスです。EQLのヒントコメントを表現します。EQLに対して、propertyNameListで指定されるプロパティのINDEXの利用を明示的に指定するヒント句です。 ただし、実際の物理テーブルにおいて、当該INDEXから駆動されるかどうかは、データベースのオプティマイザの判断によります。EQLが変換されたデータベースネイティブのSQL文に付与するヒントを指定するヒント句です。
native('ORDERED USE_NL_WITH_INDEX(...)')
のように、SQLに付与したいヒント句を''で囲って指定します。
テーブルに対するヒント句(MySQLのindex hintなど)を指定する場合は、 第一引数にテーブル名を指定します。
native(q0, 'FORCE INDEX(...)')
EQLに対して、実際にDataStoreにクエリー発行する際にバインド変数(JDBCの場合PrepareStatement)を利用しないことを指定するヒント句です。 ServiceConfigの設定により、常時バインドするように設定されている場合、特定のEQLをバインドせずに実行するために指定可能です。EQLに対して、propertyNameListで指定されるプロパティのINDEXを利用しないように明示的に指定するヒント句です。 ただし、実際の物理テーブルにおいて、当該INDEXから駆動されないかどうかは、データベースのオプティマイザの判断によります。This is a hint clause if this EQL can be issued as a ReadOnly transaction.EQLの警告ログの出力が必要ないことをマークするためのヒント句です。queryTimeout(秒)を指定するためのヒント句です。