문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
java:hibernate:cache [2014/09/30 13:45] kwon37xi [Hibernate의 기본 캐시 전략] |
java:hibernate:cache [2015/10/17 12:47] kwon37xi [Query 실행 후 Entity Cache 갱신 문제] |
||
---|---|---|---|
줄 13: | 줄 13: | ||
* [[java: | * [[java: | ||
* Entity와 컬렉션은 '' | * Entity와 컬렉션은 '' | ||
- | * '' | + | * '' |
+ | * '' | ||
===== Cuncurrency Strategy ===== | ===== Cuncurrency Strategy ===== | ||
줄 29: | 줄 30: | ||
* '' | * '' | ||
* 최초 데이터 가져온 후 캐시 생성 | * 최초 데이터 가져온 후 캐시 생성 | ||
- | * '' | + | * '' |
* 입력 : '' | * 입력 : '' | ||
* 수정 - 예외를 발생시켜야 한다. | * 수정 - 예외를 발생시켜야 한다. | ||
줄 148: | 줄 149: | ||
===== Entity Collection Cache ===== | ===== Entity Collection Cache ===== | ||
+ | ==== 기본 ==== | ||
+ | |||
엔티티의 컬렉션을 캐시하려면 해당 컬렉션에 '' | 엔티티의 컬렉션을 캐시하려면 해당 컬렉션에 '' | ||
<code java> | <code java> | ||
줄 159: | 줄 162: | ||
양방향 관계의 경우 **명시적으로 Collection 쪽에 수정이 발생**해야만 캐시가 갱신된다. | 양방향 관계의 경우 **명시적으로 Collection 쪽에 수정이 발생**해야만 캐시가 갱신된다. | ||
+ | |||
+ | ==== OneToOne not owning size ==== | ||
+ | * OneToOne 관계의 not owning side(mappedBy를 명시한 부모측)에는 캐시가 걸리지 않는 것으로 보인다.[[https:// | ||
+ | |||
===== Query Cache ===== | ===== Query Cache ===== | ||
줄 168: | 줄 175: | ||
TypedQuery< | TypedQuery< | ||
query.setParameter(" | query.setParameter(" | ||
- | |||
query.setHint(" | query.setHint(" | ||
+ | query.setHint(" | ||
query.setHint(" | query.setHint(" | ||
</ | </ | ||
줄 200: | 줄 207: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ===== Evict All ===== | ||
+ | 현재 Hibernate는 모든 리젼(Region)을 '' | ||
+ | <code java> | ||
+ | org.hibernate.Cache cache = sessionFactory.getCache(); | ||
+ | cache.evictEntityRegions(); | ||
+ | cache.evictQueryRegions(); | ||
+ | cache.evictDefaultQueryRegion(); | ||
+ | cache.evictCollectionRegions(); | ||
+ | </ | ||
+ | |||
+ | ===== Cache 관련 Properties ===== | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ===== Query 실행 후 Entity Cache 갱신 문제 ===== | ||
+ | * PK 기반 쿼리는 Cache에서 (있으면) 값을 가져오고, | ||
+ | * 하지만 Query 실행시에는 (Query Cache 가 꺼져 있으면) 쿼리 결과 Entity들을 다시 Cache에 넣는 일을 한다('' | ||
+ | * '' | ||
+ | * 하지만 '' | ||
+ | * | ||
+ | |||
===== 참조문서 ===== | ===== 참조문서 ===== | ||
* [[http:// | * [[http:// | ||
줄 207: | 줄 237: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// |