【发布时间】:2011-08-01 19:57:47
【问题描述】:
我有一个具有特定状态的域对象,当服务对象处理某个事件时,我需要检查与该状态匹配的所有实例。此事件可能会相当频繁地发生,因此每次执行休眠查询都会效率低下。因此,我收集了这些在启动时存储并在需要时进行维护的集合。
我的问题是,如果我配置了 hibernates 二级缓存,我是否可以在不关心性能的情况下对我的代码进行以下更改?
来自:
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,而不是在我的服务中维护一组所述匹配的实体。
【问题讨论】: