Я использую Spring Data JPA 1.7.1
Я пытался опросить подсказки (например, для кэширования запросов Hibernate) на запросы при использовании методов querydsl стандартных хранилищ данных Spring, как определено в интерфейсе 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);
}