1

我正在使用休眠实现和 JSF2.0 将项目转换为 JPA2.0。旧项目中有一些注解,如 @Length(min = 3) 和 @NotNull,它们是从 org.hibernate.validator.Length 导入的;和 org.hibernate.validator.NotNull;

在新项目中,我有两个选择。第一选择,我仍然可以使用@Length(min = 3),但从 org.hibernate.validator.constraints 导入略有不同。;(不使用来自 org.hibernate.validator.Length 的旧导入)。第二个选择,我可以将它们转换为 @Size(min=3) 和 @NotNull 并使用 import javax.validation.constraints。;

有人可以从这些导入的文件 org.hibernate.validator.* org.hibernate.validator.constraints 中告诉我这些不同的验证(@Length @Size @NotNUll)。; javax.validation.constraints。;

我很困惑哪个属于哪个实现和版本,以及我应该使用哪个。

4

1 回答 1

2

从版本 4 及更高版本开始,Hibernate Validator 是 Bean Validation 规范 (JSR 303/349) 的参考实现。javax.validation.constraints(@Size等) 中定义的约束@NotNull由本规范定义,并可在 Bean Validation 提供者(如 Hibernate Validator)之间移植。

Hibernate Validator 4.x 仍然提供了@Length简化从 3.x 版本迁移的约束,但如果您更喜欢单独使用标准化 API,您应该使用@Size等。

于 2013-04-26T20:25:38.033 回答