우리는 Hazelcast 3.6.1과 함께 Hibernate 3.5.6을 2 차 캐시로 사용하고 있습니다. 우리에게는 다음과 같은 문제가 있습니다. 우리는 non-lazy collection을 가진 Hibernate 엔티티를 가지고있다. 동일한 노드에서 두 개의 연속 된 세션으로 컬렉션에 요소를 추가하면 전체 컬렉션이 항상 데이터베이스에서 다시로드됩니다. 나는 요소가 컬렉션에서 완전히 제거되지 않고 캐시에서 제거되어 다른 항목을 추가 할 때마다 다시로드 될 때 2 차 레벨 캐시를 업데이트 할 수있을 것으로 기대했을 것입니다. 이것은 Hibernate 2 차 레벨 캐시의 주된 문제인가, 아니면 이것이 우리 측의 설정 문제입니까?무효화 대신 2 차 캐시 업데이트
답변
제가 직접 질문에 대답 할 수 있다고 생각합니다. 실제로 최대 절전 모드는 이 아니며 컬렉션을 업데이트하지만 항상 무효화합니다. 여기에 다음 설명이 있습니다. http://planet.jboss.org/post/collection_caching_in_the_hibernate_second_level_cache :
캐싱의 의미는 무엇입니까? 음, 핵심은 컬렉션이 캐시에서 업데이트되지 않는다는 것입니다. 캐시에서 무효화 된 다음 나중에 다른 데이터베이스를 읽은 결과로 다시 캐시 될 수 있습니다. 따라서, 만약 어플리케이션이 Group.addMember()를 호출한다면, Hibernate는 그 그룹의 멤버쉽 콜렉션을 캐시에서 제거 할 것이다. JBoss Cache가 2 차 레벨 캐시 구현 인 경우, 제거가 클러스터 주변으로 전달됩니다. ] 렉션은 클러스터의 모든 노드에서 캐시에서 제거됩니다.
나중에 응용 프로그램이 해당 그룹의 구성원에 액세스해야하는 경우 다른 데이터베이스 읽기가 발생하고 구성원의 현재 기본 키 집합이 캐시에 저장됩니다.
기본적으로 최대 절전 모드 캐시는 PK에서 키가 설정되므로 findAll()을 수행하면 findOne (id)을 수행 할 때 최대 절전 모드 캐시가 사용되지 않습니다.
findAll()을 캐시하려면 ehcache 및 @Cache 어노테이션을 사용하고 캐시에 사용하는 키를주의하십시오. http://www.ehcache.org/documentation/2.8/get-started/key-classes-methods.html
을 변경하지 않은 동료 . Hibernate는 요소를 추가하기 위해 항상 전체 콜렉션을로드 할 것이다. 문제는 이제 컬렉션이 (우리의 경우에는 이해가 안되는) 2 차 레벨 캐시에서로드 될 수 없다면 항상 전체 컬렉션을로드하도록 데이터베이스를 쿼리한다는 것입니다. –
@JanSchaefer이 캐시를 직접 담당해야합니다. 나는 틀린 것을 증명하게 행복하지만, 나는 당신과 똑같은 문제를 여러 번 경험해왔다. –
- 1. 기본 쿼리의 2 차 캐시 무효화
- 2. 최대 절전 모드 2 차 캐시 업데이트
- 3. Hibernate의 2 차 레벨 캐시?
- 4. 최대 절전 모드 2 차 수준 캐시
- 5. 어려운 하이버 네이트 2 차 레벨 캐시
- 6. 젠드 프레임 워크 2 무효화 번역기 캐시
- 7. jpa에서 2 차 캐시 용 XML에서 캐시 가능을 정의하는 방법
- 8. html 용 캐시 무효화
- 9. WebAPI OutputCache를 캐시 무효화
- 10. 캐시 무효화 기준 결정
- 11. ASP.NET - 브라우저 캐시 무효화
- 12. NHibernate : 2 차 레벨 캐시 만기
- 13. 최대 절전 모드 2 차 캐시
- 14. Eclipse 링크에서 2 차 캐시 사용
- 15. 외부 업데이트가있는 NHibernate 2 차 레벨 캐시
- 16. 캐시 - 플러시 및 무효화 작업
- 17. 스프링의 자동 캐시 무효화
- 18. Ehcache의 캐시 무효화
- 19. 교리는이 결과는 캐시 무효화
- 20. nginx 캐시 무효화
- 21. 테이블의 업데이트시 캐시 무효화
- 22. Android Studio 캐시 무효화
- 23. CPU 캐시 무효화
- 24. 서버 간 캐시 무효화
- 25. 캐시 작업이 무효화 될 때까지
- 26. 2 차 방정식 2 차 프로그래밍 R
- 27. Symfony 3.1 캐시 구성 요소의 캐시 무효화
- 28. 캐시 및 모든 참조 무효화
- 29. 소프트 삭제시 최대 절전 모드 2 차 레벨 캐시
- 30. 1 차 또는 2 차?
이것은 캐시의 용량과 관련 될 수 있습니다. 그걸 확인해 봤어? –
내가 따라 구성을 변경하지만 우리가 가진 문제는 우리가 요소를 추가 할 것입니다 동작 –