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(…)} ) | 字符串 |
检查 属性是否与给定匹配标记的正则表达式匹配。请参阅 | 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. |
| 字符串 | 检查字符串是否符合电子邮件地址规范。 | none. |
@NotEmpty | 检查字符串是否不为空或空。检查连接是否不为空或为空。 | 列对于字符串不是空的。 | |
@Range(min=, max=) | 数字的数字或字符串表示 | 检查值是否介于 min 和 max 之间,两个值都包含。 | 在列中添加检查限制。 |