How to add Query Hints to spring data jpa querydsl queries?
This is the recommended and correct way of doing it, see documentation for 1.7.1:
http://docs.spring.io/spring-data/jpa/docs/1.7.1.RELEASE/reference/html/#jpa.query-hints
Nazaret K.
Updated on June 07, 2022Comments
-
Nazaret K. almost 2 years
I'm using Spring Data JPA 1.7.1
I was trying pass query hints (e.g. for Hibernate query caching) to queries when using the querydsl methods of the standard Spring Data repositories, as defined in the
QueryDslPredicateExecutor
interface, e.g.findOne(Predicate predicate)
,findAll(Predicate predicate)
etc.I figured that they can be set by overriding the methods in
QueryDslPredicateExecutor
(in my repository interface or an intermediate interface) and adding theQueryHints
annotation, but since I cannot find this documented anywhere I was wondering if this is the recommended way of doing it.Here is an example:
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); }
-
Nazaret K. about 9 yearsYes I have seen that, but that only mentions custom queries, not related to querydsl. My question was about querydsl queries. I have assumed it can be used as I posted (by overriding the standard methods).