13.2.2. Hibernate 验证器约束

注意

如果适用,应用程序级别的限制会导致创建数据库级别限制,下表中的 Hibernate 元数据影响列中进行了描述

Java 特定的验证约束

下表包含 Java 规范中定义的验证约束,包含在 javax.validation.constraints 软件包中

注解属性类型运行时检查Hibernate 元数据影响

@AssertFalse

布尔值

检查方法是否评估为 false。用于以代码而不是注释表示的约束。

none.

@AssertTrue

布尔值

检查方法是否评估为 true。用于以代码而不是注释表示的约束。

none.

@Digits(integerDigits=1)

数字的数字或字符串表示

检查该属性是否为具有最多 整数 数字和 分分 数字的数字。

定义列精度和规模.

@Future

日期或日历

检查日期是否在将来。

none.

@Max(value=)

数字的数字或字符串表示

检查值是否小于或等于 max。

在列中添加检查限制。

@Min(value=)

数字的数字或字符串表示

检查值是否大于或等于 Min。

在列中添加检查限制。

@NotNull

 

检查值是否不为空。

列不为空.

@Past

日期或日历

检查日期是否过去。

在列中添加检查限制。

@Pattern(regexp="regexp", flag=) or @Patterns( {@Pattern(…​)} )

字符串

检查 属性是否与给定匹配标记的正则表达式匹配。请参阅 java.util.regex.Pattern

none.

@Size(min=, max=)

数组、集合、映射

检查元素大小是否介于 min 和 max 之间,两个值都包含。

none.

@Valid

对象

对关联的对象递归执行验证。如果对象是 Collection 或数组,则元素会递归验证。如果对象是 Map,则值元素会递归验证。

none.

注意

参数 @Valid 是 Jakarta Bean Validation 规范的一部分,即使它位于 javax.validation.constraints 软件包中

Hibernate 验证器特定的验证约束

下表包含特定于供应商的验证约束,它们是 org.hibernate.validator.constraints 软件包的一部分。

注解属性类型运行时检查Hibernate 元数据影响

@Length(min=, max=)

字符串

检查字符串长度是否与范围匹配。

列长度将设置为最大值。

@CreditCardNumber

字符串

检查字符串是否为格式良好的信用卡号码,并派生了 Luhn 算法。

none.

@EAN

字符串

检查字符串是否为格式正确的 EAN 或 UPC-A 代码。

none.

@Email

字符串

检查字符串是否符合电子邮件地址规范。

none.

@NotEmpty

 

检查字符串是否不为空或空。检查连接是否不为空或为空。

列对于字符串不是空的。

@Range(min=, max=)

数字的数字或字符串表示

检查值是否介于 min 和 max 之间,两个值都包含。

在列中添加检查限制。