Hibernate查询缓存和二级缓存

时间:2014-10-03 16:45:30

标签: hibernate ehcache querydsl spring-cache

我有这样的查询缓存。

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>审核域模型具有Cacheable,Cache annotations set。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

可能发生缓存未启用或未正确配置。 这不是第一次全部#34;正确&#34;配置和缓存不被禁用参数的某些错误使用。