我正在使用 Spring Data JPA 1.7.1
当使用标准 Spring Data 存储库的 querydsl 方法时,我尝试将查询提示(例如,用于 Hibernate 查询缓存)传递给查询,如 QueryDslPredicateExecutor
接口(interface)中定义的那样,例如findOne(Predicate predicate)
、findAll(Predicate predicate)
等
我认为可以通过覆盖 QueryDslPredicateExecutor
中的方法(在我的存储库接口(interface)或中间接口(interface)中)并添加 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);
}
最佳答案
这是推荐的正确方法,请参阅 1.7.1 的文档:
http://docs.spring.io/spring-data/jpa/docs/1.7.1.RELEASE/reference/html/#jpa.query-hints
关于spring - 如何将查询提示添加到 spring data jpa querydsl 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28964901/