0
を使用して述語私はJPQLを使用して選択クエリをしたいが、私は自分のコードに間違いがあり、 はここにコード「または」述語の内側「と」JPQL
だprivate CriteriaQuery<TbCase> getQueryParams(TbCaseSearchParams params, CriteriaBuilder cb, CriteriaQuery<TbCase> cq,Root<TbCase> root){
List<Predicate> criteria = new ArrayList<Predicate>();
if(params.getEqColumns() != null && params.getEqValues() != null){
criteria = getEqParamsCriteria(criteria, cb, root, params.getEqColumns(), params.getEqValues());
}else if(params.getLikeColumns() != null && params.getLikeValues() != null){
criteria = getLikeParamsCriteria(criteria, cb, root, params.getLikeColumns(), params.getLikeValues());
}else{
if(params.getCaseNumber() != null){
criteria.add(cb.equal(root.get("caseNumber"), params.getCaseNumber()));
}
if(params.getCaseStatusIds() != null){
List<String> caseStatusIds = new ArrayList<String>();
caseStatusIds = params.getCaseStatusIds();
for(int i=0 ; i<caseStatusIds.size() ; i++){
criteria.add(cb.or(cb.equal(root.get("caseStatusByCaseStatusId"), Integer.valueOf(params.getCaseStatusIds().get(i)))));
}
}
}
cq.select(root).where(cb.and(criteria.toArray(new Predicate[0])));
return cq;
}
これは、SQLでクエリの結果でありますフォーム
select something from TABLENAME as something where (something.caseNumber=:param0) and (something.caseStatusByCaseStatusId=1) and (something.caseStatusByCaseStatusId=-1) and (something.caseStatusByCaseStatusId=1) and (something.caseStatusByCaseStatusId=9) and (something.caseStatusByCaseStatusId=4) and (something.caseStatusByCaseStatusId=5) and (something.caseStatusByCaseStatusId=10) and (something.caseStatusByCaseStatusId=2) order by something.caseNumber desc
と予想されるクエリは、exを持っている私のコードをどうするか、この
select something from TABLENAME as something where (something.caseNumber=:param0) and (something.caseStatusByCaseStatusId=1 or something.caseStatusByCaseStatusId=-1 or something.caseStatusByCaseStatusId=1 or something.caseStatusByCaseStatusId=9 or something.caseStatusByCaseStatusId=4 or something.caseStatusByCaseStatusId=5 or something.caseStatusByCaseStatusId=10 or something.caseStatusByCaseStatusId=2) order by something.someCriteria desc
のようなものですあなたは別の詳細が必要な場合、私はすぐに更新されます。