【发布时间】:2016-01-27 08:59:28
【问题描述】:
我有一个关于 JPA 缓存的简单问题。 我为名为“Service”的持久性单元创建了一个命名查询,如下所示:
@NamedQuery(name = DBConstants.ALL_SERVICES, query = "select s from Service s",
hints = {
@QueryHint(name = QueryHints.QUERY_RESULTS_CACHE, value = HintValues.TRUE),
@QueryHint(name = QueryHints.QUERY_RESULTS_CACHE_SIZE, value = "200")
}),
以上代码允许 JPA 缓存存储多达 200 个结果条目。
现在,当我执行像"Select s from Service s where s.name='abc'" 这样的子查询时,会发生什么?
它会在缓存的条目上运行此查询还是将其传递给数据库以处理查询?感谢您的支持。
【问题讨论】:
-
在您的情况下,它会调用数据库,但会提取缓存中的实体(不是重新创建新对象,因为它们在 200 中)。
标签: jpa caching eclipselink