@Override
protected List<Predicate> getPredicates(Root<PersistableIpModification> root, CriteriaBuilder cb) {
List<Predicate> predicates = new ArrayList<>();
predicates.add(createEqualsPredicate("status", query.getStatus(), root, cb));
predicates.add(createEqualsPredicate("type", query.getType(), root, cb));
predicates.add(createEqualsPredicate("organisation.timePeriods.organisationGroup.id", query.getGroupId(), root, cb,true));
if(query.getIp() != null){
Predicate[] restrictions = new Predicate[IP_PATHS.length];
for(int i=0;i<IP_PATHS.length;i++){
Path<String> ipPath = root.get(IP_PATHS[i]);
restrictions[i] = cb.like(cb.lower(ipPath), query.getIp().toLowerCase());
}
Predicate orPredicate = cb.or(restrictions);
predicates.add(orPredicate);
}
return predicates;
}
}