public static Specification<HardwareMonitorPO> isLongTermCustomer(HardwareMonitorPO hardwareMonitorPO) {
return new Specification<HardwareMonitorPO>() {
public Predicate toPredicate(Root<HardwareMonitorPO> root, CriteriaQuery<?> query,
CriteriaBuilder builder) {
List<Predicate> list = new ArrayList<Predicate>();
//Predicate p = cb.and(p3,cb.or(p1,p2));
//where p4 and (p1 and (p2 or p3))
//root.get
if(!StringUtils.isEmpty(hardwareMonitorPO.getItemCode())){
list.add(builder.and(builder.equal(root.get("itemCode"), hardwareMonitorPO.getItemCode())));
}
if(!StringUtils.isEmpty(hardwareMonitorPO.getItemName())){
list.add(builder.and(builder.equal(root.get("itemName"), hardwareMonitorPO.getItemName())));
}
Predicate[] p = new Predicate[list.size()];
query.where(builder.and(list.toArray(p)));
return null;
}
};
}
return new Specification<HardwareMonitorPO>() {
public Predicate toPredicate(Root<HardwareMonitorPO> root, CriteriaQuery<?> query,
CriteriaBuilder builder) {
List<Predicate> list = new ArrayList<Predicate>();
//Predicate p = cb.and(p3,cb.or(p1,p2));
//where p4 and (p1 and (p2 or p3))
//root.get
if(!StringUtils.isEmpty(hardwareMonitorPO.getItemCode())){
list.add(builder.and(builder.equal(root.get("itemCode"), hardwareMonitorPO.getItemCode())));
}
if(!StringUtils.isEmpty(hardwareMonitorPO.getItemName())){
list.add(builder.and(builder.equal(root.get("itemName"), hardwareMonitorPO.getItemName())));
}
Predicate[] p = new Predicate[list.size()];
query.where(builder.and(list.toArray(p)));
return null;
}
};
}