クエリキャッシュ
クエリキャッシュはデフォルトでは有効になっていません。クエリキャッシュを使用するには、使用するエンティティビーンタイプに対して @Cache マッピングアノテーションで明示的に有効にする必要があります。
クエリキャッシュの有効化
以下の例では、顧客エンティティ Bean でクエリキャッシュを有効にします。
@Cache(enableQueryCache=true)
@Entity
public class Customer {
...
}
setUseQueryCache(true)
クエリキャッシュを使用するには、クエリでその使用を明示的に指定する必要があります。
// use the query cache
List<Country> list = DB.find(Country.class)
.setUseQueryCache(true)
.where().ilike("name", "New%")
.findList();
クエリキャッシュは通常、変更頻度の非常に低いリストを返すために役立ちます。これらのリストは、多くの場合、ユーザーインターフェイスのドロップダウンリストやコンボボックスの設定に使用されます。
「ルックアップテーブル」または「リファレンステーブル」という用語に精通していた場合、これらはキャッシュされたクエリを使用するための一般的な候補です。ルックアップ/リファレンステーブルの例としては、国、通貨、注文ステータスなどがあります。
クエリキャッシュリストは読み取り専用です。
@CacheQueryTuning
すべてのクエリキャッシュの実装(Hazelcast と Apache Ignite を含む)はニアキャッシュを使用し、@CacheQueryTuning を使用してチューニングできます。
@Cache(enableQueryCache=true)
@CacheQueryTuning(maxSecsToLive = 30)
@Entity
public class Product {