4
내가 방법을 아래에 호출하여 2 레벨 캐시에서 캐시 데이터를 지우려면
sessionFactory.getCache().evictEntityRegions();
난 그냥 알고 싶어
,이 일에 어떤 해가? 예 : 트랜잭션 도중에 캐시를 지우려고하면 어떻게됩니까?
미리 감사드립니다.
안녕하세요, Dragan, 나는 데이터를 가져 오기 위해 일부 트랜잭션이 실행 중이고 2 단계 캐시에 데이터가있는 경우를 고려해야합니다. 동시에 이전 트랜잭션이 완료되지 않은 동안 다른 스레드가 모든 region 캐시를 제거합니다. 그러면이 경우에 어떻게 될 것입니다. 해당 트랜잭션에서 캐시에서 null을 얻을 수 있고 db 히트가 발생할 수 있습니까? 어떤 문제가있을 수 있습니까? –
@VikasVats이 경우 객체는 이미 첫 번째 레벨 캐시 (세션)에 있으며 트랜잭션의 끝까지 거기에서 가져올 것입니다. 개체가 세션에서 수동으로 제거되거나 전체 세션이 수동으로 지워지면 개체가 db에서 다시로드되고 첫 번째 및 두 번째 수준 캐시에 저장됩니다. 그것에 대해 어떤 문제도 발생할 가능성이 없습니다. –