40

有没有办法在@NotEmpty不编写自定义验证的情况下实现休眠验证?javax.validation 包不包含此注解。只有@NotNull. 但它不验证非空但为空的值。所以我想看看@NotEmpty.

使用@Pattern? 如何?

4

4 回答 4

98

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

于 2013-07-05T06:05:43.313 回答
9

请注意,@NotEmpty 将对包含 null 元素的 List<> 返回有效。

在@QueryParam List<> 的情况下有点奇怪

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

于 2016-07-29T12:45:22.363 回答
2

@NotEmptyHibernate 6 之后的 Hibernate 源代码中,它告诉我们使用标准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

这个新注解来自 Bean Validation 2.0 (JSR 380)。看:

于 2018-03-07T04:03:26.873 回答
1

对于 Hibernate,它在较新的版本中已被弃用。
使用较新版本的 Javax 验证,它具有@Empty

利用

import javax.validation.constraints.NotEmpty;

@NotEmpty
private List<Record> records;
于 2019-03-24T09:39:28.380 回答