Я использую 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);
}
QueryDslJpaRepository.createQuery(…)
следует применить эти подсказки. - person Oliver Drotbohm   schedule 11.03.2015