3 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
方法聲明:
public List<XrayVulnerabilityEntity> findAll(Specification<XrayVulnerabilityEntity> spec, Pageable pageable);
執(zhí)行:
Specification specification = new Specification<XrayVulnerabilityEntity>() {
@Override
public Predicate toPredicate(Root<XrayVulnerabilityEntity> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
List<Predicate> predicates = new ArrayList<>();
predicates.add(criteriaBuilder.equal(
root.join("domainArtifactId").get("id"), root.get("id")));
predicates.add(criteriaBuilder.and(
root.get("domainArtifactId").get("domainOrgName"), "domainOrgNameString"));
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
}
};
Pageable page = PageRequest.of(0, 5, new Sort(Sort.Direction.ASC, "id") );
List<XrayVulnerabilityEntity> xrayVulnerabilityEntitylists = xrayVulnerabilityEntityRepo.findAll(specification, page);

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
我像這里一樣解決了這個(gè)問題;
@PostMapping(value = "/search")
public List<Customer> search(@RequestBody List<SearchCriteriaRequest> criteriaRequest, Pageable page) {
if (criteriaRequest == null || criteriaRequest.size() == 0) {
return null;
}
SpecificationsBuilder builder = new SpecificationsBuilder();
for (SearchCriteriaRequest criteria : criteriaRequest) {
builder.with(criteria);
}
Specification<Customer> spec = builder.build();
return customerRepository.findAll(spec, page).getContent();
}

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
在此查詢中:
@Query("SELECT COUNT(x) FROM XrayVulnerabilityEntity x,DomainArtifactEntity d WHERE d.domainOrgName=:domainOrgNameParam AND x.domainArtifactId=d")
public Long getCount(@Param(value = "domainOrgNameParam") String domainOrgName,Specification<XrayVulnerabilityEntity> spec);
您正在引用一個(gè)參數(shù):domainOrgNameParam,但在方法參數(shù)中找不到該參數(shù)。如果您使用Specifications,您應(yīng)該在那里定義所有內(nèi)容并避免傳遞額外的參數(shù)。
添加回答
舉報(bào)