ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス
12c (12.1.2)
E48005-01
  目次へ移動
目次

前
 
次
 

cache-usage

eclipselink.cache-usageを使用して、問合せとOracle TopLinkキャッシュとの相互作用の方法を指定します。

表4-3は、この問合せヒントの有効値を説明しています。

表4-3 org.eclipse.persistence.config.CacheUsageの有効値

Value 説明

DoNotCheckCache

常にデータベースに移動します。

CheckCacheByExactPrimaryKey

読取り問合せに主キーのみを比較する式が含まれている場合、メモリー内のオブジェクトに対して式を処理すると、キャッシュ・ヒットを取得できます。

CheckCacheByPrimaryKey

読取り問合せに少なくとも主キーを比較する式が含まれている場合、メモリー内のオブジェクトに対して式を処理すると、キャッシュ・ヒットを取得できます。

CheckCacheThenDatabase

任意の読取り問合せを構成し、データベースにアクセスする前にキャッシュを完全にチェックできます。

CheckCacheOnly

任意のすべて読取り問合せを構成し、親セッション・キャッシュ(共有キャッシュ)のみをチェックして、データベースにアクセスせずにその問合せからの結果を返すことができます。

ConformResultsInUnitOfWork

任意の読取り問合せまたはすべて読取り問合せを作業ユニットのコンテキスト内で構成し、作業ユニット内でオブジェクトに加えられた変更に結果を一致させることができます。これには、新規オブジェクト、削除されたオブジェクト、および変更されたオブジェクトが含まれます。

UseEntityDefault

(デフォルト)このエンティティにEclipseLinkディスクリプタAPIで指定されたキャッシュ構成を使用します。

注意: エンティティのデフォルト値では、キャッシュはチェックされません(DoNotCheckCache)。この問合せは、データベースにアクセスしてキャッシュと同期化します。問合せにリフレッシュが設定されている場合を除き、キャッシュされたオブジェクトはデータベースからリフレッシュされずに返されます。EclipseLinkでは、ネイティブ問合せ、またはデータや複数オブジェクトを返すなどの複雑な結果セットを含む問合せに対するキャッシュの使用はサポートされていません。


使用方法

Oracle TopLink JPAでは、永続性ユニット全体からアクセスされる共有キャッシュを使用します。特定の永続性コンテキストで操作を完了すると、Oracle TopLinkにより結果が共有キャッシュにマージされ、これにより、エンティティ・マネージャおよび永続性コンテキストがJava SEまたはJava EEで作成されたものであるかどうかにかかわらず、他の永続性コンテキストで結果を使用できるようになります。

エンティティ・マネージャを使用して永続化または削除されたすべてのエンティティは、常に、一貫してキャッシュで保持されます。

例4-7に、JPA問合せでこのヒントを使用する方法を示します。

例4-7 JPA問合せでのcache-usageの使用

import org.eclipse.persistence.config.CacheUsage;
 import org.eclipse.persistence.config.QueryHints;
 query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheOnly);

例4-8に、@QueryHint注釈でこのヒントを使用する方法を示します。

例4-8 @QueryHint注釈でのcache-usageの使用

import org.eclipse.persistence.config.CacheUsage;
 import org.eclipse.persistence.config.TargetDatabase;
 @QueryHint(name=QueryHints.CACHE_USAGE, value=CacheUsage.CheckCacheOnly);

関連項目

詳細は、次を参照してください。