我正在使用Spring Data JPA 1.7.1。
当我在使用标准Spring数据存储库中的querydsl方法时(如QueryDslPredicateExecutor
接口中定义的findOne(Predicate predicate)
,findAll(Predicate predicate)
等),我尝试向查询传递查询提示(例如Hibernate查询缓存)。
我发现可以通过覆盖QueryDslPredicateExecutor
中的方法(在我的存储库接口或中间接口中)并添加QueryHints
注释来设置它们,但由于我无法在任何地方找到这个文档,所以我想知道这是否是推荐的做法。
这里是一个例子:
public interface MyEntityRepository extends CrudRepository<MyEntity, Integer>, CacheableQueryDslPredicateExecutor<MyEntity> {
@QueryHints(value = {
@QueryHint(name = "org.hibernate.cacheable", value = "true"),
@QueryHint(name = "org.hibernate.cacheMode", value = "NORMAL"),
@QueryHint(name = "org.hibernate.cacheRegion", value = "myCacheRegion")
})
Iterable<T> findAll(Predicate predicate);
}
QueryDslJpaRepository.createQuery(…)
应该能够实际应用这些提示。 - Oliver Drotbohm