让我有一个这样的表:
ID | PREID |值
其中 ID 是 PRIMARY密钥,而 PREID 是经常查询的字段,而不是 ID 本身。
预想:
以上表格的所有值均为只读
问题
使用 EHCACHE 2.6处理上述表格的最佳策略是什么?
我考虑2种策略:
仅使用二级缓存,并避免使用用户定义的缓存,但是这 级高速缓存仅在查询PK时有效: 为了在查询PREID列时使用缓存,我可能需要使用:
query.setCacheable(true)
在 ehcache.xml 中配置缓存元素,并通过以下方式手动放置所有值来使用缓存管理器:
for (Entity item : list) {
cache.put(new Element(item.getPk(), item));
}
,然后使用 getSearchAttribute(..)
final Attribute<Object> preid = cache.getSearchAttribute("preid");
Query query = cache
.createQuery()
.includeAttribute(preid)
.addCriteria(preid.eq("some_pre_id"))
.end();
Results results = query.execute();
但是我对是否需要在查询之前手动放置所有值存有疑问。
我的问题: 是否有其他替代策略可以做到这一点? 两种方法哪个更好?