Spring Cache 抽象化は複数値クエリをサポートしていますか?
それ以外の:
@Cacheable("books") public Book findBook(ISBN isbn) {...}
次のようなクエリを想像してください。
@Cacheable("books") public List< Book > findBook(List< ISBN > isbns) {...}
これはサポートされていますか? コレクションで返された各本を個別にキャッシュしますか?
ありがとう!
Spring Cache は結果全体を単一のキャッシュ キーに格納するため、コレクションで返される各オブジェクトを個別に格納することはできません。JPA クエリの結果をキャッシュする場合は、クエリ キャッシュを使用できます。memcached がオプションである場合は、Simple Spring Memcachedおよび ReadThroughMultiCache アノテーションを試すことができます。コレクションの各要素を専用のキャッシュ キーの下に個別に格納します。
クエリ キャッシュは実際、クエリ入力ごとに結果のリストをキャッシュできます。返されたエンティティの ID のみがクエリ キャッシュに保存されることに注意してください。プロパティもキャッシュする場合は、返されたエンティティ タイプ自体に対してエンティティ キャッシュを個別に有効にする必要があります。