有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javahibernate@NotEmpty注释在Javax中是等效的。包装或替代品

有没有一种方法可以在不编写自定义验证的情况下实现@NotEmptyhibernate验证? javax。验证包不包含此批注。只有@NotNull。但它不会验证非null但为空的值。因此,我希望看到@NotEmpty的替代方案

使用@Pattern?怎么做


共 (4) 个答案

  1. # 1 楼答案

    对于Hibernate,较新版本中不推荐使用它
    对于较新版本的Javax验证,它有@Empty

    使用

    import javax.validation.constraints.NotEmpty;

    @NotEmpty
    private List<Record> records;
    
  2. # 2 楼答案

    在Hibernate 6之后的Hibernate @NotEmpty源代码中,它告诉我们使用标准javax.validation.constraints.NotEmpty约束:

    /**
     * Asserts that the annotated string, collection, map or array is not {@code null} or empty.
     *
     * @author Emmanuel Bernard
     * @author Hardy Ferentschik
     *
     * @deprecated use the standard {@link javax.validation.constraints.NotEmpty} constraint instead
     */
    

    见:https://github.com/hibernate/hibernate-validator/blob/6.0/engine/src/main/java/org/hibernate/validator/constraints/NotEmpty.java

    这个新注释来自BeanValidation2.0(JSR380)。见:

  3. # 3 楼答案

    NotEmpty只是@NotNull@Size(min=1)的组合

  4. # 4 楼答案

    请注意@NotEmpty将返回对列表有效的<&燃气轮机;包含空元素的

    在@QueryParam列表中有点奇怪<&燃气轮机

    正如Affe所说,我做了一个自定义注释,它本身用@NotNull和@Size(min=1)进行注释,并使用一个自定义验证器迭代集合,并且仅当元素不为null时才定位布尔标志