문제

최대 절전 모드 프로젝트에서 두 번째 레벨 캐시를 사용하고 싶지만 최대 절전 모드 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) 쿼리 인스턴스에서.

그 말에 따르면, 당신은 캐싱과 정말 이해합니다 당신이하는 일, 그렇지 않으면 도움보다 더 해를 끼칠 것입니다. 예를 들어 모든 것을 캐싱하는 것은 "빠른 수정"으로 보지 마십시오. 분명히 잘못된 일.

다른 팁

설정을 사용하면 프로젝트에서 사용할 수있는 두 번째 레벨 및 쿼리 캐시를 사용할 수 있지만 특정 엔티티, 컬렉션 및 쿼리에는 여전히 활성화해야합니다. 이해해야 할 트레이드 오프가 있기 때문에 신중한 계획이 필요합니다. 일반적으로 두 번째 레벨 및 쿼리 캐시는 읽기 전용 또는 읽기 데이터에 적합하지만 휘발성 데이터는 아닙니다. 아직 소유하지 않으면 사본을받는 것이 좋습니다. 최대 절전 모드와의 자바 지속성. 그것은 주제에 대한 매우 좋은 대우를 가지고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top