Я использую Spring Boot 2 с JNA данных Spring и реализации Hibernate. Я делаю пользовательский поиск
public Page<Samples> advancedSearch(SamplesSearchDto search, Pageable page) {
Specification<Samples> specification = genericAdvancedSearch(search);
return this.findAll(specification, page);
}
Мой метод genericAdvancedSearch
Specification<Samples> specification = (Root<Samples> root, CriteriaQuery<?> cq, CriteriaBuilder cb) -> {
Predicate p = cb.conjunction();
Join<Samples, Samplings> samplings = (Join) root.join("sampling", JoinType.INNER);
...
return p;
};
return specification;
, который работает, но я хотел бы использовать fetchчтобы уменьшить SQL-запрос, который сделан.
Я пытался root.fetch ... но получить
java.lang.UnsupportedOperationException: null в java.util.AbstractCollection.add (AbstractCollection.java: 262) ~ [na: 1.8.0_131] в org.hibernate.query.criteria.internal.CriteriaBuilderImpl.treat (CriteriaBuilderImpl.java:1400) ~ [hibernate-core-5.3.7.Final.jar: 5.3.7.Final] в org.hibernate.query.criteria.internal.CriteriaBuilderImpl.treat (CriteriaBuilderImpl.java:1113) ~ [hibernate-core-5.3.7.Final.jar: 5.3.7.Final] в com.mermacon.lcm.repository.SamplesRepositoryImpl.lambda $ genericAdvancedSearch $ 39e4c45a $ 1 (SamplesRepositoryImpl.java:88) ~ [main /: na] в org.springframework.data.jpa.repository.support.SimpleJpaRepository.ava_paS[весенне-данных JPA-2.1.5.RELEASE.jar: 2.1.5.RELEASE] at org.springframework.data.jpa.repository.support.SimpleJpaRepository.getQuery (SimpleJpaRepository.java:625) ~ [spring-data-jpa-2.1.5.RELEASE.jar: 2.1.5.RELEASE] at org.springframework.data.jpa.repository.support.SimpleJpaRepository.getQuery (SimpleJpaRepository.java:583) ~ [spring-data-jpa-2.1.5.RELEASE.jar: 2.1.5.RELEASE] at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll (SimpleJpaRepository.java:386) ~ [spring-data-jpa-2.1.5.RELEASE.jar: 2.1.5.RELEASE]