문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
java:hibernate:cache [2014/09/30 13:45] kwon37xi |
java:hibernate:cache [2018/09/13 14:28] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 11: | 줄 11: | ||
| * [[http:// | * [[http:// | ||
| * 기본적으로 Replication-Invalidation 전략을 사용한다. | * 기본적으로 Replication-Invalidation 전략을 사용한다. | ||
| - | * Entity와 컬렉션은 '' | + | |
| - | * '' | + | |
| + | * '' | ||
| + | * '' | ||
| ===== Cuncurrency Strategy ===== | ===== Cuncurrency Strategy ===== | ||
| 줄 28: | 줄 30: | ||
| * '' | * '' | ||
| * 최초 데이터 가져온 후 캐시 생성 | * 최초 데이터 가져온 후 캐시 생성 | ||
| - | * '' | + | * '' |
| * 입력 : '' | * 입력 : '' | ||
| * 수정 - 예외를 발생시켜야 한다. | * 수정 - 예외를 발생시켜야 한다. | ||
| 줄 147: | 줄 149: | ||
| ===== Entity Collection Cache ===== | ===== Entity Collection Cache ===== | ||
| + | ==== 기본 ==== | ||
| + | |||
| 엔티티의 컬렉션을 캐시하려면 해당 컬렉션에 '' | 엔티티의 컬렉션을 캐시하려면 해당 컬렉션에 '' | ||
| <code java> | <code java> | ||
| 줄 158: | 줄 162: | ||
| 양방향 관계의 경우 **명시적으로 Collection 쪽에 수정이 발생**해야만 캐시가 갱신된다. | 양방향 관계의 경우 **명시적으로 Collection 쪽에 수정이 발생**해야만 캐시가 갱신된다. | ||
| + | |||
| + | ==== OneToOne not owning size ==== | ||
| + | * OneToOne 관계의 not owning side(mappedBy를 명시한 부모측)에는 캐시가 걸리지 않는 것으로 보인다.[[https:// | ||
| + | |||
| ===== Query Cache ===== | ===== Query Cache ===== | ||
| 줄 167: | 줄 175: | ||
| TypedQuery< | TypedQuery< | ||
| query.setParameter(" | query.setParameter(" | ||
| - | |||
| query.setHint(" | query.setHint(" | ||
| + | query.setHint(" | ||
| query.setHint(" | query.setHint(" | ||
| </ | </ | ||
| 줄 199: | 줄 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:// | ||
| 줄 206: | 줄 237: | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||