나는, 내가 findById 메소드 쿼리를 사용하고최대 절전 모드 두 번째 레벨 캐시 다음과 같은 인쇄 결과
@Cache 주석을 사용하여 내 응용 프로그램에서 두 번째 레벨 캐시를 정의 :
회사는 객체가long id = 4;
Company cmp = companyDAO.findById(id);
그 나는 DB에서 얻는다.
Company 개체가 DB 또는 캐시에서 왔는지 어떻게 확인할 수 있습니까?
나는, 내가 findById 메소드 쿼리를 사용하고최대 절전 모드 두 번째 레벨 캐시 다음과 같은 인쇄 결과
@Cache 주석을 사용하여 내 응용 프로그램에서 두 번째 레벨 캐시를 정의 :
회사는 객체가long id = 4;
Company cmp = companyDAO.findById(id);
그 나는 DB에서 얻는다.
Company 개체가 DB 또는 캐시에서 왔는지 어떻게 확인할 수 있습니까?
시도 HitCount and/or MissCount API. 이 같은
뭔가 ..... 캐시 로깅에
int oldMissCount = sessionFactory.getStatistics().getSecondLevelCacheStatistics(rName).getMissCount();
int oldHitCount = sessionFactory.getStatistics().getSecondLevelCacheStatistics(rName).getHitCount();
long id = 4;
Company cmp = companyDAO.findById(id);
int newMissCount = sessionFactory.getStatistics().getSecondLevelCacheStatistics(rName).getMissCount();
int newHitCount = sessionFactory.getStatistics().getSecondLevelCacheStatistics(rName).getHitCount();
if(oldHitCount+1 == newHitCount && oldMissCount+1 == newMissCount) {
logger.debug("came from DB");
} else if(oldHitCount+1 == newHitCount && oldMissCount == newMissCount) {
logger.debug("came from cache");
}
켭니다.
Company 개체가 DB 또는 캐시에서 왔는지 어떻게 확인할 수 있습니까?
Hibernate는 특정 범주를 사용하여 모든 보조 캐시 활동을 기록합니다.. 관련 카테고리가 org.hibernate.cache
인 경우 로깅 프레임 워크 구성에서 디버그을 사용 설정하기 만하면됩니다.
Chapter 3.5 Logging을 참조하십시오.
로그에서 실행하고 싶지 않습니다. 화면에 인쇄 할 테스트 페이지에서 실행하고 싶습니다. 회사는 캐쉬/캐쉬되지 않았습니다. – Dejell
@Odelya : 아마도,하지만 당신은 OP가 아닙니다. :)이 질문이 귀하의 요구를 충족시키지 못하면보다 구체적인 질문을 게시하십시오. –
안녕하세요! 나는 같은 팀에서 Riki와 함께있다. 그녀의 질문을 바꿀 수 없다. ( 그녀는 시스템의 객체가 캐쉬되어 있는지 확인해야하는 페이지를 작성했다 .그러나 우리는 로그를 사용하고 싶지 않다. - JSF를 사용하여 뷰를 인쇄하고 싶습니다. – Dejell
나는이 코드를 시도했지만 misscount와 hit count는 항상 0으로 반환됩니다 ... 내가 만들 수있는 실수는 무엇입니까 ?? – Anand
@Anand hibernate.cache.use_second_level_cache, hibernate.cache.use_query_cache, hibernate.generate_statistics를 활성화 했습니까? http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-optional – dira
엔티티의 지역 이름 (rName)을 찾는 방법은 무엇입니까? – Sriram