[SPRING] Spring을 사용하여 2 차 레벨 캐시를 최대 절전 모드로 만듭니다.
SPRINGSpring을 사용하여 2 차 레벨 캐시를 최대 절전 모드로 만듭니다.
나는 Spring + JPA + Hibernate를 사용하고있다. 나는 Hibernate의 2 차 수준 캐시를 활성화하려고 노력하고있다. 내 Spring의 applicationContext.xml에는 다음과 같은 것들이있다.
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">/ehcache.xml</prop>
실행하면 오류가 발생합니다.
Caused by: org.hibernate.HibernateException: Could not instantiate cache implementation
at org.hibernate.cache.CacheFactory.createCache(CacheFactory.java:64)
Caused by: org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
at org.hibernate.cache.NoCacheProvider.buildCache(NoCacheProvider.java:21)
따라서 두 번째 레벨 캐시를 사용할 수 없다는 불만이 있습니다. 내 applicationContext.xml에 추가하여 활성화하려고 시도합니다.
<prop key="hibernate.cache.use_second_level_cache">true</prop>
그러나 여전히 기쁨은 없습니다. 나는 또한 이것을 내 ehcache.xml에 추가하려고 시도했다.
<property name="hibernate.cache.use_second_level_cache">true</property>
하지만 여전히 작동하지 않습니다. provider_class를 org.hibernate.cache.EhCacheProvider로 변경해도 도움이되지 않습니다.
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
내 엔티티 클래스는 캐싱을 사용하도록 주석 처리됩니다.
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
그렇다면 2 차 수준 캐시를 사용하려면 어떻게해야합니까?
편집 : 이것은 콩 밑에있다 :
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
해결 방법 : LocalEntityManagerFactoryBean을 사용하고 있으므로 META-INF / persistence.xml에서 설정을 가져옵니다. applicationContext.xml의 내 설정도 읽히지 않았습니다.
해결법
-
==============================
1.나는 대답하지 않았지만, 포스터가 그 답을 찾았다는 것은 분명하지 않다. 나는 그의 대답을 reposting 오전 :
나는 대답하지 않았지만, 포스터가 그 답을 찾았다는 것은 분명하지 않다. 나는 그의 대답을 reposting 오전 :
LocalEntityManagerFactoryBean을 사용하기 때문에 META-INF / persistence.xml에서 설정을 가져옵니다. applicationContext.xml의 내 설정도 읽히지 않았습니다.
-
==============================
2.이 시도:
이 시도:
<prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.max_fetch_depth">4</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>
Maven을 사용하는 경우 POM 파일에 다음을 추가하십시오.
<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.3.0</version> </dependency>
또는 http://ehcache.org/에서 최신 항아리를 다운로드하십시오.
-
==============================
3.이 링크는 Hibernate 4에서 2 차 캐시를 사용하는 데 도움이되었습니다.
이 링크는 Hibernate 4에서 2 차 캐시를 사용하는 데 도움이되었습니다.
from https://stackoverflow.com/questions/474159/hibernate-second-level-cache-with-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] JDBCTemplate은 BeanPropertyRowMapper를 사용하여 중첩 POJO를 설정합니다. (0) | 2019.01.11 |
---|---|
[SPRING] Spring Framework의 주석을 통해 resourceBundle에서 지역화 된 메시지 가져 오기 (0) | 2019.01.11 |
[SPRING] 싱글 톤을 Spring 빈으로 만드는 올바른 방법 (0) | 2019.01.10 |
[SPRING] Grails 파일 다운로드 (0) | 2019.01.10 |
[SPRING] Spring의 ConversionService (0) | 2019.01.10 |