2011-08-01 5 views
4

서비스 개체가 처리하는 특정 이벤트에서 해당 상태와 일치하는 모든 인스턴스를 검사해야하는 특정 상태의 도메인 개체가 있습니다. 이 이벤트는 상당히 자주 발생할 수 있으므로 매번 최대 절전 쿼리를 수행하면 비효율적입니다. 그래서 나는 시작할 때 저장하고 필요할 때마다 유지 관리하는 이들의 모음을 가지고 있습니다.최대 절전 모드 2 수준 캐싱을 사용해야합니까?

제 질문은 최대 절전 모드 2 차 레벨 캐시를 구성하면 성능에 관계없이 다음 코드를 변경할 수 있습니까?

은 :

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를 사용하여 변경합니다.

답변

2

예, 정확하게는 what the second-level cache/query cache입니다. Hibernate는 당신보다 더 일관되고 효과적으로 그것을 처리 할 것이다. 프로파일 러는 매개 변수를 충족시키기 위해 캐시를 조정하는 데 도움을줍니다. 최적화하기 전에 앱을 프로파일 링 했습니까?