我正在寻找一种方法来为我的存储库制定一个全局规范,以便做到以下几点:
return applicantRepository.findAll(globalSpecificationApplicant, pageRequest);
事实上,我得到了一个Specification数组,我想循环到其中以使用where&和操作员(所有规格都在我的要求中)。
这是我的服务:
public Page<Applicant> findWithParams(RechercheApplicantForm form, PageRequest pageRequest) {
if(form.isEmptyForm()) {
logger.debug("empty form findAll");
return findAll(pageRequest);
}
else {
logger.debug("form ok fnidAllLikeForm");
List<Specification<Applicant>> lSpecificationApplicant = applicantRepository.getAllSpecificationsLikeForm(form);
Specification<Applicant> globalSpecificationApplicant = null;
if (lSpecificationApplicant != null){
globalSpecificationApplicant = where(lSpecificationApplicant.get(0));
for (int i = 1; i < lSpecificationApplicant.size(); i++){
// Doesnt work : "and" not defined
globalSpecificationApplicant = globalSpecificationApplicant.and(lSpecificationApplicant.get(i));
}
}
return applicantRepository.findAll(globalSpecificationApplicant, pageRequest);
}
}
我可以在第一个规范中使用where子句,但我不能在后面使用and子句。。