1.【or】用法: sql:....where (card_status ='0' or card_status is null) and.....
@Override
public Predicate toPredicate(Root<MemberCard> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> predicate = new ArrayList<>();
Predicate p1 = cb.equal(root.get("isDeleted").as(Integer.class), Constants.DELETE_NO); Predicate p2 = cb.equal(root.get("lido").as(Lido.class), lido);
Predicate p3 = cb.equal(root.get("cardstatus").as(Byte.class), 0);
Predicate p4 = cb.isNull(root.get("cardstatus").as(Byte.class));
Predicate p8 = cb.or(p3,p4);
Predicate p5 = cb.isNotNull(root.get("openTime").as(Date.class));
Predicate p6 = cb.isNotNull(root.get("saleTime").as(Date.class));
Predicate p7 = cb.equal(root.get("cardType").as(MemberCardType.class), memberCardType);
predicate.add(p1);
predicate.add(p2);
predicate.add(p8);
predicate.add(p5);
predicate.add(p6);
predicate.add(p7);
Predicate[] pre = new Predicate[predicate.size()];
return cb.and(predicate.toArray(pre));
}