@NotNull 和 @NotEmpty 对于同一属性

Rav*_*nam 4 java validation spring spring-boot

我正在使用弹簧靴。

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
Run Code Online (Sandbox Code Playgroud)

对于同一属性,我给出两个注释,一个用于空检查,另一个用于空检查。

@NotNull(message = "{email.notnull}")
@NotEmpty(message = "{email.notempty}")
private String email;
Run Code Online (Sandbox Code Playgroud)

我正在从属性文件加载错误消息。

当我将电子邮件设置为时,我只会收到错误消息email.notempty,但是当我将电子邮件设置为空时,email.notnull并且email.notempty显示这两条错误消息,我可以知道我犯了什么错误吗?

当我给出 null 时,我应该只能看到 null 错误。

his*_*ner 7

正如@NotEmpty文档所述

带注释的元素不能为 null 也不能为空。

它有一个隐式的非空要求,因此您可以删除@NotNull.

另请参见Bean 验证中 @NotNull、@NotEmpty 和 @NotBlank 约束之间的区别