Hibernate @NotEmpty注释等效于Javax.package或替代

问题描述 投票:33回答:4

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

使用@Pattern?怎么样?

java validation annotations bean-validation notnull
4个回答
90
投票

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


7
投票

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

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

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


2
投票

更新:

我在这个答案的成绩中得到了-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
 */

看到:

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)之后,有一个新的注释@NotEmpty:

javax.validation.constraints.NotEmpty

看到:

http://beanvalidation.org/2.0/spec/#builtinconstraints-notempty

https://github.com/beanvalidation/beanvalidation-api/blob/master/src/main/java/javax/validation/constraints/NotEmpty.java


0
投票

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

使用

import javax.validation.constraints.NotEmpty;

@NotEmpty
private List<Record> records;
© www.soinside.com 2019 - 2024. All rights reserved.