有没有办法在不编写自定义验证的情况下实现@NotEmpty
hibernate验证? javax.validation包不包含此批注。只有@NotNull
。但它不验证非空值但为空值。所以我想看看@NotEmpty
的另一种选择。
使用@Pattern
?怎么样?
NotEmpty只是@NotNull
和@Size(min=1)
的组合。
请注意,@ NotTmpty将对包含null元素的List <>返回有效。
在@QueryParam List <>的情况下有点怪异
正如Affe所说,我做了一个自定义注释,本身用@NotNull和@Size(min = 1)注释了一个自定义验证器,它迭代集合并仅在元素不为空时才定位布尔标志。
我在这个答案的成绩中得到了-2分。
所以我更新它。
在Hibernate 6之后的Hibernate @NotEmpty源代码中,它告诉我们使用标准的{@link 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
*/
看到:
在Bean Validation 2.0(JSR 380)之后,有一个新的注释@NotEmpty:
javax.validation.constraints.NotEmpty
看到:
http://beanvalidation.org/2.0/spec/#builtinconstraints-notempty
对于Hibernate,它在较新版本中已弃用。
使用较新版本的Javax验证,它有@Empty
使用
import javax.validation.constraints.NotEmpty;
@NotEmpty
private List<Record> records;