BeanValidation适用于放置在FIELD级别的正常验证:
@Email
@Column(unique = true)
private String email;
但是,在TYPE-Level上放置自定义约束:
@Entity
@UniqueEmail
public class UserAccount {
@Email
@Column(unique = true)
private String email;
...
}
注释为:
@Constraint(validatedBy = {UniqueEmailValidator.class})
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface UniqueEmail { ... }
不起作用。 UniqueEmailValidator
永远不会被调用,除非我通过在注入.validate()
javax.validation.Validator
以编程方式触发它
这是预期的行为,还是可以通过BeanValidation还评估类型级别的自定义约束的方式进行更改。