如何为Spring Data JPA QueryDSL查询添加查询提示?

21

我正在使用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);

}

你确定版本没问题吗?对应的支持是在1.7.0.RC1版本中通过 DATAJPA-574 添加的。QueryDslJpaRepository.createQuery(…) 应该能够实际应用这些提示。 - Oliver Drotbohm
我上面发布的实际上是有效的。我只是想知道它是否是正确的用法,因为我无法在任何地方找到与querydsl相关的文档。谢谢。 - Nazaret K.
1个回答

11

6
我看到过那个,但它只提到了自定义查询,并没有涉及到Querydsl。我的问题是关于Querydsl查询的。我认为可以像我发布的那样使用(通过覆盖标准方法)。 - Nazaret K.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接