このようなクエリキャッシュがあります。
JPAQuery dslQuery = new JPAQuery(entityManager);
QReview qReview = QReview.Review;
BooleanExpression where = QReview.review.id.in('123');
dslQuery.setHint("org.hibernate.cacheable", true);
List<Review> reviews = dslQuery.from(qReview ).where(where).distinct().list(qReview );
すべてのキャッシュ パラメータが正しく設定されているので、上記のリスト、つまり List<Review>
キャッシュされると思いますか?
しかし、その後、reviewRepository.findOne('123');
id 123 がキャッシュから取得された Review の代わりに、db クエリが起動されるのを見ることができます。
注: reviewRepository は標準の querydsl リポジトリです。これは、レビュー ドメイン モデルを実装しCRUDRepository<Review,String>
、キャッシュ可能でキャッシュ アノテーションが設定されています。
事前に助けてくれてありがとう。