【发布时间】:2012-12-17 11:44:38
【问题描述】:
当前使用 eclipselink JPA 提供程序来访问后端实体。我正在使用命名查询来访问数据并使用以下查询缓存选项。
@NamedQueries({
@NamedQuery(name = Supplier.FIND_ALL, query = "select o from Supplier o",hints={
@QueryHint(name=QueryHints.READ_ONLY, value=HintValues.TRUE),
@QueryHint(name = QueryHints.QUERY_RESULTS_CACHE, value = HintValues.TRUE),
@QueryHint(name = QueryHints.CACHE_STATMENT, value = HintValues.TRUE),
@QueryHint(name = QueryHints.CACHE_STORE_MODE, value = "REFRESH"),
@QueryHint(name = QueryHints.CACHE_RETRIEVE_MODE,value=CacheUsage.CheckCacheThenDatabase),
}),
})
我也在实体上使用以下缓存选项。
@Cache(refreshOnlyIfNewer=true,
coordinationType=CacheCoordinationType.SEND_OBJECT_CHANGES,alwaysRefresh=true)
查询似乎第一次需要一段时间,但对于进一步的检索来说非常快(QueryHints.QUERY_RESULTS_CACHE, value = HintValues.TRUE 的 b'cozs )。但似乎随后对数据库的任何更改都没有反映在输出中。似乎缓存没有被刷新,并且对数据库的更新更改没有反映在输出中。
同样需要帮助。
谢谢, 克里希纳
【问题讨论】:
标签: jpa eclipselink