我有一個域對象有一個特定的狀態,在服務對象處理某個事件時,我需要檢查與該狀態匹配的所有實例。這個事件發生得相當頻繁,所以每次做一個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,而不是我的服務中維護一套說相匹配的實體。