您需要区分验证API和Java持久性API(jpa)(以及供应商特定的持久性api)。Hibernate考虑了JPA配置(和hibernate持久性api),并且当您不提供此类配置时
ConventionOver Configuration,该过程就涉及到原理。这就是为什么你
varchar(255)的
@Size(max = 50)private String shortTitle;
等于(我省略了其他默认值)
@Size(max = 50)@Column(length = 255, nullable = true)private String shortTitle;
验证API涉及验证目的。检查字段是否正确填充。同一字段可能存在不同的验证规则。
更新
我的意思是这个http://beanvalidation.org/1.0/spec/#constraintsdefinitionimplementation-
constraintdefinition-
groups。
对于一组,您验证一个约束,对于另一组,您验证另一个约束。
例如
@NotNull(groups = DefaultGroup.class)@Null(groups = SecondGroup.class)private String shortTitle;
然后
Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); Set<ConstraintViolation<Title>> constraintViolations = validator.validate(title, DefaultGroup.class); Set<ConstraintViolation<Title>> secondConstraintViolations = validator.validate(title, SecondGroup.class);



