2011-12-20 1 views
2

엔티티 모듈 (엔티티 클래스 + Hibernate XML 매핑)을 공유하는 여러 Java 응용 프로그램이 있다는 것을 알 수 있습니다. 현재 엔터티는 캐싱을 사용할 수 없습니다 (매핑 내에서 <cache.../> 요소 없음).하나의 최대 절전 모드 매핑을 가진 두 번째 레벨 캐시 설정

대부분의 응용 프로그램은 하나의 엔티티를 편집하는 데 많은 관심을 가지고 있으므로 두 번째 수준의 캐시에서 벗어날 수 없습니다.

이제 새로운 응용 프로그램은

  1. 이 같은 엔티티 매핑
  2. 를 사용해야하지만, 2 단계 및 쿼리 캐시를 사용해야하는 구현된다.

캐시를 구성하는 방법은 무엇입니까?

몇 가지 관찰 :

  1. 이 같은 캐시를 구성하지하고있는 내 영향력 아래 있지 않는 다른 응용 프로그램 중단 것이기 때문에

    나는 매핑에 <cache.../> 요소를 추가 할 수 없습니다 :

    Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]

  2. 매핑 외부에서 캐싱 할 엔터티를 활성화하는 방법을 찾을 수 없습니다. 엔티티에 대한 캐시 영역 설정에 도움이되지 않습니다.
  3. 다른 모든 응용 프로그램을 변경하고 <cache.../>을 엔티티 매핑에 추가 할 수 있지만 hibernate.cache.use_second_level_cache=false을 설정하여 캐시를 비활성화 할 수는 없습니다. 당신이 3.8. XML configuration file를 참조 엔티티 매핑 hibernate.cfg.xml보다는 캐싱을 구성 할 수 <class-cache> 요소를 사용할 수 있습니다처럼 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html, 표 3.5

답변

1

것 같습니다.

기존 매핑을 사용하는 사용자 정의 hibernate.cfg.xml을 만들 수 있으며, 그렇지 않은 경우 Configuration.setCacheConcurrencyStrategy() 메쏘드가 도움이 될 것입니다.

+0

장님이 되셨을 것입니다.하지만 정말 그러한 구성 옵션을 찾으려고했습니다. 예를 들어를 사용하는 프로그래밍 방식의 Spring 구성을 좋아하는 사람들에게 앞에'LocalSessionFactoryBean'에서, corresponsing 방법은'setEntityCacheStrategies이다 (특성 entityCacheStrategies)' http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/LocalSessionFactoryBean.html# setEntityCacheStrategies (java.util.Properties) – rainer198