【发布时间】:2014-11-28 18:16:35
【问题描述】:
我有一个这样的查询缓存。
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 集。
提前感谢您的帮助。
【问题讨论】:
标签: hibernate ehcache querydsl spring-cache