我创建了这个规范,它返回一个字符串并且效果很好:
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,然后抛出异常,或者实现 null 对象模式 - 即用字符串替换 null,例如:“未提供参数”。
或者,不要使用字符串来构建查询,而只使用条件 API。
关于java - Spring数据规范中的可为空参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24281509/