java - Spring数据规范中的可为空参数

标签 java spring null parameter-passing

我创建了这个规范,它返回一个字符串并且效果很好:

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/

相关文章:

c - C中三元运算符采用不同操作数类型的原理

java - 如何在 Apache Commons Math 中执行整数线性规划

java - 在 Controller 层MVC上使用Mock

java - 在 Jar 中打包和使用嵌入式数据库(H2.db 文件)?

java - 无法执行语句; SQL [不适用];约束[空];嵌套异常是 org.hibernate.exception.ConstraintViolationException :

java - 在继承类中创建一个对象,在数据库java中设置来自父类(super class)null的属性

java - 更改 Logger 实例的全局设置

java - 如何使用 WSS4J 拦截器在 Web 服务方法中获取经过身份验证的用户

java - 如何让 Spring JPA、Hibernate 和 OSGi 发挥出色?

java - 空字符串和空字符串的区别