Package org.iplass.mtp.entity.query.hint


package org.iplass.mtp.entity.query.hint
  • Class
    Description
    EQLに対して、実際に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(秒)を指定するためのヒント句です。