我有一个域对象具有特定的状态,在服务对象处理某个事件时,我需要检查与该状态匹配的所有实例.此事件可以相当频繁地发生,因此每次执行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,而不是在我的服务中维护一组所述匹配的实体.
最佳答案 是的,这正是07000/
query cache. Hibernate将比您更加一致和有效地处理它.您的探查器将帮助您调整缓存以满足您的参数.在您尝试优化应用之前,您确实对应用进行了配置,对吗?