사용자 도구

사이트 도구


java:jpa:cache

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:jpa:cache [2015/03/17 00:30]
kwon37xi
java:jpa:cache [2015/10/17 12:07] (현재)
kwon37xi
줄 1: 줄 1:
 ====== JPA Second Level Cache ====== ====== JPA Second Level Cache ======
 +  * [[java:hibernate:cache|Hibernate Cache]]
   * Hibernate 4 기반으로 살펴보는 JPA2 Second Level Cache.   * Hibernate 4 기반으로 살펴보는 JPA2 Second Level Cache.
   * 아직까지 살펴본바로는, JPA 2의 [[http://docs.oracle.com/javaee/6/api/javax/persistence/Cacheable.html|@Cacheable]]애노테이션보다는 그냥 [[https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/annotations/Cache.html|@org.hibernate.annotations.Cache]]를 사용하고 쿼리 캐시 힌트로 hibernate 기반으로 사용하는게 나은 듯 하다.   * 아직까지 살펴본바로는, JPA 2의 [[http://docs.oracle.com/javaee/6/api/javax/persistence/Cacheable.html|@Cacheable]]애노테이션보다는 그냥 [[https://docs.jboss.org/hibernate/orm/4.2/javadocs/org/hibernate/annotations/Cache.html|@org.hibernate.annotations.Cache]]를 사용하고 쿼리 캐시 힌트로 hibernate 기반으로 사용하는게 나은 듯 하다.
줄 8: 줄 9:
  
 전체 리젼을 다 evict하려면 Hibernate의 ''SessionFactory''의 ''Cache'' 구현체로 수행해야 한다. 전체 리젼을 다 evict하려면 Hibernate의 ''SessionFactory''의 ''Cache'' 구현체로 수행해야 한다.
 +관련 구현은 [[https://github.com/hibernate/hibernate-orm/blob/master/hibernate-entitymanager/src/main/java/org/hibernate/jpa/internal/EntityManagerFactoryImpl.java
 +|EntityManagerFactoryImpl.java]]에 있다.
 +
 <code java> <code java>
 +// JPA 2.0사용시
 HibernateEntityManagerFactory hemf = (HibernateEntityManagerFactory)entityManagerFactory; HibernateEntityManagerFactory hemf = (HibernateEntityManagerFactory)entityManagerFactory;
 org.hibernate.Cache cache = hemf.getSessionFactory().getCache(); org.hibernate.Cache cache = hemf.getSessionFactory().getCache();
 +
 +// JPA 2.1 사용시
 +SessionFactory sessionFactory = entityManagerFactory.unwrap(SessionFactory.class)
 +org.hibernate.Cache cache = sessionFactory.getCache();
 +
 +// 전체 eviction
 cache.evictEntityRegions(); cache.evictEntityRegions();
 cache.evictQueryRegions(); cache.evictQueryRegions();
-cache.evictDefaultQueryRegion(); 
 cache.evictCollectionRegions(); cache.evictCollectionRegions();
 </code> </code>
 +
 +===== 참고 =====
 +  * [[http://www.developer.com/java/using-second-level-caching-in-a-jpa-application.html|Using Second Level Caching in a JPA Application - Developer.com]]
  
java/jpa/cache.1426519806.txt.gz · 마지막으로 수정됨: 2015/03/17 00:30 저자 kwon37xi