2009-08-17 2 views
0

나는 맵핑 파일에서 캐시 할 수있는 객체를 몇 개 구성했고,이 특정 객체에서 볼 수있는 것에서 캐쉬가 잘 작동하지 않는다.Hibernate + EhCache는 캐쉬를 잃어 버린다.

다른 개체의 경우 각 반복마다 증가하는 방문 횟수가 표시되지만 누락 된 횟수는 0 인 반면이 경우 세션마다 매 시간마다 누락 된 것으로 나타납니다.

Elements in Memory: 8305 
Elements on Disk: 0 
Hit Count: 24915 
Missed Count 8305 
Put Count: 8305 

내가 잘못되었을 수있는 몇 가지 정보를 찾고 있습니다.

  • 배경으로 나는 equals 및 hashCode 구현을 검사했으며 심지어 디버깅도 올바른 결과를 반환하는 것 같습니다.
  • 이 특정 개체는 다른 개체뿐만 아니라 최상위 개체에도 사용됩니다.
+0

도움이 필요 http://stackoverflow.com/questions/17046830/hibernate-4-0-ehcache-2-4-3-always-miss-cache-hit – GdJeek

답변

2

확실히 이러한 통계는 캐시를 올바르게 치고 있음을 보여줍니다.

당신이 ID로 객체를 얻는 경우, Hibernate는 다음과 같이 대략 따를 것이다 :

  1. 첫 번째 레벨 캐시에 체크 (세션 개체)
  2. 확인 두 번째 레벨 캐시 및
  3. 를 그리워
  4. 은 다음

가장 가능성을위한 두 번째 레벨 캐시에 넣어 DB를

  • 에서 개체를로드 미스를 등록하지 않는 다른 오브젝트에 대한 설명은 직접 캐시 액세스가 불가능한 쿼리 나 연관을 사용하는 대신 자신의 ID로 액세스하지 않는 것입니다.

  • 관련 문제