사용자 도구

사이트 도구


java:jpa:cache

문서의 이전 판입니다!


JPA Second Level Cache

  • Hibernate 4 기반으로 살펴보는 JPA2 Second Level Cache.
  • 아직까지 살펴본바로는, JPA 2의 @Cacheable애노테이션보다는 그냥 @org.hibernate.annotations.Cache를 사용하고 쿼리 캐시 힌트로 hibernate 기반으로 사용하는게 나은 듯 하다.

Entity Cache

@Entity
@Table(name = "books")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "books")
public class Book implements Serializable {
....
}

Query Cache

  • setHint를 통해 캐시하도록 지정
    TypedQuery<Book> query = em.createNamedQuery("Book.byEdition", Book.class);
    query.setParameter("edition", 3);
     
    query.setHint("org.hibernate.cacheable", true);
    query.setHint("org.hibernate.cacheRegion", "book-by-edition"); // region 지정
  • NamedQuery에 지정
    @NamedQuery(name = "Book.byEdition",
            query = "from Book where edition=:edition",
            hints = {
                    @QueryHint(name = "org.hibernate.cacheable", value = "true"),
                    @QueryHint(name = "org.hibernate.cacheRegion", value = "book-by-edition")
            }
    )
    public class Book implements Serializable {
    ....
    }
java/jpa/cache.1402152400.txt.gz · 마지막으로 수정됨: 2014/06/07 23:46 저자 kwon37xi