如何将查询提示添加到spring数据jpa querydsl查询?

Naz*_* K. 15 spring hibernate jpa querydsl spring-data-jpa

我正在使用Spring Data JPA 1.7.1

我试图通查询提示(例如,对于休眠查询缓存),以查询中使用标准的Spring数据存储库的方法querydsl时,如在限定的QueryDslPredicateExecutor接口,例如findOne(Predicate predicate),findAll(Predicate predicate)

我认为可以通过覆盖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);

}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ons 5

这是推荐的正确方法,请参阅1.7.1文档:

http://docs.spring.io/spring-data/jpa/docs/1.7.1.RELEASE/reference/html/#jpa.query-hints

  • 是的,我已经看到了,但这仅提及自定义查询,与querydsl不相关。我的问题是关于querydsl查询。我假设它可以像我发布的那样使用(通过覆盖标准方法)。 (3认同)