최대 절전 모드 2 단계 캐시 ehcache.xml, 엔티티의 캐시 설정을 읽을 수 없습니다.

StackOverflow https://stackoverflow.com/questions/934720

문제

명확하고 쉽게하기 위해 두 가지 프로젝트가 있습니다. 1.이 프로젝트에 모든 엔티티 클래스가있는 엔티티 프로젝트. 2. Main () 함수가 포함 된 프로젝트 응용 프로그램을 실행하기 위해 Ehcache.xml 이이 프로젝트의 클래스 경로에 배치됩니다.

내 문제는 다음과 같습니다 DefaultCache ehcache.xml의 요소와 SQL 로그 파일에서 변경 사항을 볼 수 있습니다. 그러나 나는 최대 절전 모드가 내만 읽는 것 같아요 DefaultCache 내가 무엇이든지 바꾸기 때문에 요소 은닉처 특정 엔티티의 Ehcache.xml의 요소에는 SQL 로그에 변경 사항이 없습니다.

예를 들어 : 내가 설정하면 MaxelementsInMemoryDefaultCache 요소 0, 내가 무엇을 설정했는지 MaxelementsInMemory은닉처 엔티티의 요소 100 또는 0, 두 번째 레벨 캐시에 캐시 된 엔티티는 없습니다. 내가 설정하면 MaxelementsInMemoryDefaultCache 요소 100, 내가 무엇을 설정했는지 MaxelementsInMemory은닉처 엔티티의 요소 100 또는 0, 항상 두 번째 레벨 캐시에 캐시 된 엔티티가 있습니다.

그래서 나는 아마도 이름 속성이라고 생각합니다 은닉처 엔티티의 요소가 잘못 설정되었으며 최대 절전 모드에서 읽을 수 없습니까?

도움이 되었습니까?

해결책

내 문제가 어디에 있는지 알았습니다. Ehcache를 캐시 제공 업체로 사용하고 있습니다. ehcache.xml에서 표준 QueryCache 요소를 설정하지 않은 경우 DefaultCache 요소도 모든 querycaches에도 사용된다고 생각합니다. 따라서 모든 querycache가 DefaultCache 영역을 사용하고 있기 때문에 MaxelementsInmemory를 "0"으로 설정했는지 여부는 중요하지 않습니다. 그러나 MaxelementsInMemory를 "0"으로 설정하면 EntityManager.find () 함수를 사용할 때 해당 엔티티의 Sencond 레벨 캐시를 비활성화하는 데 도움이 될 수 있습니다.

다른 팁

문서를 읽으십시오. 경우 maxElementsInMemory 설정, 값 0 특별한 의미가 있습니다. unlimited. 따라서 캐시가 전혀없는 대신 모든 것을 캐싱하고 있습니다.

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