최대 절전기 2 단계 캐시 << net.sf.ehcache.hibernate.ehcacheprovider >>
-
06-07-2019 - |
문제
최대 절전 모드 프로젝트에서 두 번째 레벨 캐시를 사용하고 싶지만 최대 절전 모드 2 레벨 캐시에 대해 조금 알고 있습니다. 어떤 사람이 내 코드에서 이것을 어떻게 사용하는지, 어떤 구성 및 .jar 파일을 설명 할 수 있습니까? 이 설정을 Hibernate.cfg.xml 파일로 설정했습니다
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
이 JAR 파일을 추가하십시오 ehcache-1.6.1.jar, ehcache-1.6.1-javadoc.jar, ehcache-1.6.1-sources.jar
다른 구성을 변경하고 싶습니까?
내 프로젝트가 2 단계 캐시를 사용한다는 것을 어떻게 이해할 수 있습니까?
이 설정 만하면 Hibernate는 자동으로 이것을 사용하거나 .java 클래스에서 다른 코드를 사용해야합니다 (모든 주석이나 다른 것과 같은).
해결책
당신이 찾고있는 주석은입니다 org.hibernate.annotations.cache. 기본 사용법은 다음과 같습니다.
@Entity
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public MyEntity {
...
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public List<ElementType> getSomeCollection() {
...
}
}
쿼리의 경우 필요합니다 쿼리 캐시를 활성화합니다 설정하여 hibernate.cache.use_query_cache
true에 대한 속성과 쿼리가 선언 (명명 된 쿼리)에서 캐시 가능하거나 setCacheable(true)
쿼리 인스턴스에서.
그 말에 따르면, 당신은 캐싱과 정말 이해합니다 당신이하는 일, 그렇지 않으면 도움보다 더 해를 끼칠 것입니다. 예를 들어 모든 것을 캐싱하는 것은 "빠른 수정"으로 보지 마십시오. 분명히 잘못된 일.
다른 팁
설정을 사용하면 프로젝트에서 사용할 수있는 두 번째 레벨 및 쿼리 캐시를 사용할 수 있지만 특정 엔티티, 컬렉션 및 쿼리에는 여전히 활성화해야합니다. 이해해야 할 트레이드 오프가 있기 때문에 신중한 계획이 필요합니다. 일반적으로 두 번째 레벨 및 쿼리 캐시는 읽기 전용 또는 읽기 데이터에 적합하지만 휘발성 데이터는 아닙니다. 아직 소유하지 않으면 사본을받는 것이 좋습니다. 최대 절전 모드와의 자바 지속성. 그것은 주제에 대한 매우 좋은 대우를 가지고 있습니다.