我创建了这个规范,返回一个字符串,效果很好:
public static Specification<Eleve> nomIsLike(final String nom) {
return new Specification<Eleve>() {
@Override
public Predicate toPredicate(Root<Eleve> personRoot, CriteriaQuery<?> query, CriteriaBuilder cb) {
String likePattern = getLikePattern(nom);
return cb.like(cb.lower(personRoot.<String>get(Eleve_.nom)), likePattern);
}
private String getLikePattern(final String nom) {
StringBuilder pattern = new StringBuilder();
pattern.append(nom.toLowerCase());
pattern.append("%");
return pattern.toString();
}
};
}
我的问题是,如果参数为null,则规范不起作用并提供正常的异常,我想知道如何使我的规范接受空参数
答案 0 :(得分:0)
检查null,并抛出异常或实现null对象模式 - 即用字符串替换null,例如:“没有提供参数”。
或者,不要使用字符串来构建查询,只需使用条件api。