java – 我应该使用hibernate二级缓存吗?

我有一个域对象具有特定的状态,在服务对象处理某个事件时,我需要检查与该状态匹配的所有实例.此事件可以相当频繁地发生,因此每次执行hibernate查询都是低效的.所以我有一些这些我在启动时存储并在需要时维护的集合.

我的问题是,如果我配置了休眠二级缓存,我是否能够在不关心性能的情况下对我的代码进行以下更改?

从:

public void handleEvent(SomeEvent someEvent) {
    for (Entity entity : matchedEntitiesSet) {
         // evaluate each entity for required changes. update state as needed
         // persist any changes
    }

    // update my collection with the current repository result.
}

至:

public void handleEvent(SomeEvent someEvent) {
    for (Entity entity : dao.getSomeEventsByCriteria(criteria)) {
         // evaluate each entity for required changes. update state as needed
         // persist any changes
    }
}

实际上,我会改为使用DAO,而不是在我的服务中维护一组所述匹配的实体.

最佳答案 是的,这正是070​​00/
query cache. Hibernate将比您更加一致和有效地处理它.您的探查器将帮助您调整缓存以满足您的参数.在您尝试优化应用之前,您确实对应用进行了配置,对吗?

点赞