ehcache,正确使用可搜索的

时间:2019-02-19 10:07:56

标签: hibernate orm ehcache

让我有一个这样的表:

ID | PREID |值

其中 ID PRIMARY密钥,而 PREID 是经常查询的字段,而不是 ID 本身。

预想:

以上表格的所有值均为只读

问题

使用 EHCACHE 2.6处理上述表格的最佳策略是什么?

我考虑2种策略:

  1. 仅使用二级缓存,并避免使用用户定义的缓存,但是这 级高速缓存仅在查询PK时有效: 为了在查询PREID列时使用缓存,我可能需要使用:

    query.setCacheable(true)

  2. 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();

但是我对是否需要在查询之前手动放置所有值存有疑问。

我的问题: 是否有其他替代策略可以做到这一点? 两种方法哪个更好?

0 个答案:

没有答案