UnsupportedOperationException使用获取而不是加入

时间:2019-03-05 18:48:59

标签: hibernate spring-boot jpa spring-data

我将spring boot 2与spring data jpa和hibernate实现一起使用 我进行自定义搜索

public Page<Samples> advancedSearch(SamplesSearchDto search, Pageable page) {
        Specification<Samples> specification = genericAdvancedSearch(search);

        return this.findAll(specification, page);
    }

我的通用AdvancedSearch方法

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.applySpecificationToCriteria(SimpleJpaRepository.java:694)   〜[spring-data-jpa-2.1.5.RELEASE.jar:2.1.5.RELEASE]在   org.springframework.data.jpa.repository.support.SimpleJpaRepository.getQuery(SimpleJpaRepository.java:625)   〜[spring-data-jpa-2.1.5.RELEASE.jar:2.1.5.RELEASE]在   org.springframework.data.jpa.repository.support.SimpleJpaRepository.getQuery(SimpleJpaRepository.java:583)   〜[spring-data-jpa-2.1.5.RELEASE.jar:2.1.5.RELEASE]在   org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:386)   〜[spring-data-jpa-2.1.5.RELEASE.jar:2.1.5.RELEASE]

0 个答案:

没有答案