1

このようなクエリキャッシュがあります。

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>、キャッシュ可能でキャッシュ アノテーションが設定されています。

事前に助けてくれてありがとう。

4

1 に答える 1

0

少し後で、キャッシュ構成を投稿すると役立ちます。

キャッシュが有効になっていないか、適切に構成されていない可能性があります。すべてが「適切に」構成され、キャッシュが禁止されたパラメーターの間違いによって使用されなくなったのは初めてではありません。

于 2015-10-02T14:04:03.753 に答える