Class CacheHint

All Implemented Interfaces:
Serializable, ASTNode

public class CacheHint extends EQLHint
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
See Also:
  • Constructor Details

  • Method Details

    • getScope

      public CacheHint.CacheScope getScope()
    • setScope

      public void setScope(CacheHint.CacheScope scope)
      キャッシュのスコープを指定。TRANSACTION or GLOBALを指定可能。 デフォルトはGLOBAL。
      Parameters:
      scope -
    • getTTL

      public int getTTL()
    • setTTL

      public void setTTL(int ttl)
      CacheScope.GLOBALの場合のキャッシュの有効期間(秒)を指定。 未指定、0以下の場合は無限。
      Parameters:
      ttl -
    • accept

      public ASTNode accept(ASTTransformer transformer)
    • accept

      public void accept(HintVisitor visitor)
      Specified by:
      accept in class Hint
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface ASTNode
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface ASTNode
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Specified by:
      toString in interface ASTNode
      Overrides:
      toString in class Object