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');我可以看到 db 查询被触发,而不是从缓存中获取 id 123 的 Review。

注意:reviewRepository 是一个标准的 querydsl 存储库。实现CRUDRepository<Review,String>Review 域模型有 Cacheable、Cache annotations 集。

我在这里先向您的帮助表示感谢。

4

1 回答 1

0

稍后,如果您发布缓存配置,它会有所帮助。

可能会发生缓存未启用或未正确配置的情况。这不是第一次“正确”配置所有内容并且由于禁止参数的某些错误而未使用缓存。

于 2015-10-02T14:04:03.753 回答