복붙노트

[SPRING] 다중 값 쿼리를 사용하는 스프링 캐시 추상화

SPRING

다중 값 쿼리를 사용하는 스프링 캐시 추상화

Spring Cache 추상화는 다중 값 쿼리를 지원합니까?

대신에:

@ 캐시 가능 ( "books") 공공 도서 findBook (ISBN isbn) {...}

다음과 같은 쿼리가 있다고 상상해보십시오.

@ 캐시 가능 ( "books") 공개 목록 findBook (목록 isbns) {...}

지원됩니까? 컬렉션에 반환 된 각 도서를 개별적으로 캐시합니까?

감사!

해결법

  1. ==============================

    1.Spring Cache는 전체 결과를 단일 캐시 키로 저장하므로 컬렉션에 반환 된 각 객체를 개별적으로 저장할 수 없습니다. JPA 쿼리 결과를 캐싱하는 경우 쿼리 캐시를 사용할 수 있습니다. 다른 경우 memcached가 옵션 인 경우 Simple Spring Memcached 및 ReadThroughMultiCache 주석을 사용할 수 있습니다. 컬렉션의 각 요소를 전용 캐시 키에 개별적으로 저장합니다.

    Spring Cache는 전체 결과를 단일 캐시 키로 저장하므로 컬렉션에 반환 된 각 객체를 개별적으로 저장할 수 없습니다. JPA 쿼리 결과를 캐싱하는 경우 쿼리 캐시를 사용할 수 있습니다. 다른 경우 memcached가 옵션 인 경우 Simple Spring Memcached 및 ReadThroughMultiCache 주석을 사용할 수 있습니다. 컬렉션의 각 요소를 전용 캐시 키에 개별적으로 저장합니다.

  2. ==============================

    2.쿼리 캐시는 실제로 쿼리 입력 당 결과 목록을 캐시 할 수 있습니다. 반환 된 엔티티의 ID 만 쿼리 캐시에 저장된다는 점에 유의하십시오. 속성을 캐시하기를 원하면 리턴 된 엔티티 유형 자체에 대해 개별적으로 엔티티 캐시를 사용 가능하게해야합니다.

    쿼리 캐시는 실제로 쿼리 입력 당 결과 목록을 캐시 할 수 있습니다. 반환 된 엔티티의 ID 만 쿼리 캐시에 저장된다는 점에 유의하십시오. 속성을 캐시하기를 원하면 리턴 된 엔티티 유형 자체에 대해 개별적으로 엔티티 캐시를 사용 가능하게해야합니다.

  3. from https://stackoverflow.com/questions/13178723/spring-cache-abstraction-with-multi-value-queries by cc-by-sa and MIT license