我将spring boot 2与spring数据jpa和hibernate实现结合使用
我做一个自定义搜索
public Page<Samples> advancedSearch(SamplesSearchDto search, Pageable page) {
Specification<Samples> specification = genericAdvancedSearch(search);
return this.findAll(specification, page);
}
我的一般高级搜索方法
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查询的工作量。
我试过根。取来但是得到
JAVAlang.UnsupportedOperationException:在
JAVAutil。抽象收集。添加(AbstractCollection.java:262)
[na:1.8.0131]at
组织。冬眠查询标准内部的标准构建模板。treat(CriteriaBuilderImpl.java:1400)
~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]at
组织。冬眠查询标准内部的标准构建模板。treat(CriteriaBuilderImpl.java:1113)
~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]at
通用域名格式。梅梅肯。lcm。存储库。示例repositoryimpl。lambda$General AdvancedSearch$39e4c45a$1(SampleRepositoryImpl.java:88)
~[main/:na]at
组织。springframework。数据jpa。存储库。支持简单的假设。ApplySpecificationCriteria(SimpleParepository.java:694)
~[spring-data-jpa-2.1.5.RELEASE.jar:2.1.5.RELEASE]
组织。springframework。数据jpa。存储库。支持简单的假设。getQuery(SimpleParepository.java:625)
~[spring-data-jpa-2.1.5.RELEASE.jar:2.1.5.RELEASE]
组织。springframework。数据jpa。存储库。支持简单的假设。getQuery(SimpleParepository.java:583)
~[spring-data-jpa-2.1.5.RELEASE.jar:2.1.5.RELEASE]
组织。springframework。数据jpa。存储库。支持简单的假设。findAll(SimpleJpaRepository.java:386)
~[spring-data-jpa-2.1.5.RELEASE.jar:2.1.5.RELEASE]