특정 비즈니스 이유 때문에 내 애플리케이션에서 Hibernate 2 차 레벨 캐시를 사용하고 있습니다. 엔티티 어노테이션을 더 이상 변경할 수 없습니다..어노테이션을 변경하지 않고 Hibernate의 특정 엔티티의 2 차 레벨 캐시를 어떻게 비활성화 할 수 있습니까?
내 프로젝트에서 Hibernate로부터 데이터베이스를 변경하는 것 외에도, Hibernate를 거치지 않는 다른 원시 SQL도 존재한다. 따라서, 하이버 네이트의 2 차 레벨 캐쉬 데이터는 네이티브 SQL로부터 데이터베이스가 갱신 된 후에 효력을 상실 할 수있다. 그렇기 때문에 에서 특정 엔터티에 대해 프로그래밍 방식으로나 주석을 변경하는 것 외의 방식으로 두 번째 수준의 캐시를 사용하지 않도록 설정해야합니다.
미리 감사드립니다.
감사합니다. Matej, 저는 이것이 제가 원했던 답변이라고 생각합니다! 엔티티 클래스가 다른 엔티티 프로젝트에 배치되는 동안 내 ehcache.xml이 내 실행 가능 프로젝트의 클래스 경로에 배치되는 또 다른 문제가 있습니다. Hibernate는 내 ehcache.xml에서 기본 캐시 설정만을 읽은 것 같습니다. 이는 : Hibernate는 읽지 않습니다 내 다른 엔티티 ehcache.xml의 캐시 설정 –
Hibernate는 객체의 캐시를 객체 이름으로 식별한다. 기본적으로 클래스 이름은 엔티티 이름으로 사용되지만 Hibernate 매핑 파일에서 변경할 수있다. (또는 주석). 당신이 Hibernate 매핑에서 엔티티 이름을 변경하지 않았다면, 당신은 단순히 완전 클래스 이름을 사용해야 만한다. 그렇지 않으면 Hibernate 매핑에서 명시 적으로 명시된 (심볼릭) 엔티티 이름을 사용한다 .. – Matej