查询缓存

默认情况下,查询缓存未启用。要使用查询缓存,我们需要在实体 Bean 类型的 @Cache 映射注释中显式启用它。

启用查询缓存

以下示例在 Customer 实体 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  {