@Override
public ResponseData getDetails(SearchParam param) {
QProblemPoint qProblemPoint = QProblemPoint.problemPoint;
Map<String,String> map = getWhere(param);
// import com.querydsl.core.types.ExpressionUtils;
// import com.querydsl.core.types.Predicate;
Predicate predicate = qProblemPoint.isNotNull().or(qProblemPoint.isNull());
predicate = map.get("problemClassify").equals("") ? predicate : ExpressionUtils.and(predicate,qProblemPoint.problemClassify.eq(map.get("problemClassify")));
predicate = map.get("problemLevel").equals("") ? predicate : ExpressionUtils.and(predicate,qProblemPoint.problemLevel.eq(map.get("problemLevel")));
predicate = map.get("securityRiskEvent").equals("") ? predicate : ExpressionUtils.and(predicate,qProblemPoint.securityRiskEvent.eq(map.get("securityRiskEvent")));
predicate = map.get("riskItems").equals("") ? predicate : ExpressionUtils.and(predicate,qProblemPoint.riskItems.eq(map.get("riskItems")));
//内容或编号
predicate = map.get("number").equals("") ? predicate : ExpressionUtils.and(predicate,qProblemPoint.number.like("%"+map.get("number")+"%"));
predicate = map.get("riskPointDesc").equals("") ? predicate : ExpressionUtils.or(predicate,qProblemPoint.riskPointDesc.like("%"+map.get("riskPointDesc")+"%"));
JPAQuery<ProblemPoint> query = jpaQueryFactory
.selectFrom(qProblemPoint)
.where(predicate);
List<ProblemPoint> list = query
.offset(param.getStart())
.limit(param.getLength()).fetch();
long count = query.fetchCount();
ResponseData res = new ResponseData();
res.setData(list);
res.setRecordsTotal(count);
res.setDraw(param.getDraw());
res.setRecordsFiltered(count);
return res;
}
使用Predicate构造