UnsupportedOperationException с использованием fetch вместо join - PullRequest
0 голосов
/ 05 марта 2019

Я использую 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]

...