如何在字段上没有注释的情况下使用Hibernate验证器?

时间:2010-12-26 07:50:59

标签: hibernate

是否可以使用Hibernate验证器API在带有注释的字段中存储经过验证的对象?例如,我想通过调用Java方法来验证Email地址,而不是在Java bean属性上放置@Email注释。

2 个答案:

答案 0 :(得分:9)

是的,有可能。尝试类似的东西,

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

Car car = new Car(null);

Set<ConstraintViolation<Car>> constraintViolations = validator.validateProperty(car, "manufacturer");

看看here

(编辑必须是6个字符)

答案 1 :(得分:3)

zinan.yumaks解决方案,他们正在创建一个您不需要的虚拟Car对象,这不是正确的方法。有一个更好的解决方案,validateValue方法:

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

String emailAddress = "...";

Set<ConstraintViolation<User>> constraintViolations = 
    validator.validateValue(User.class, "email", emailAddress);

来自文档:

  

验证对类propertyName的名为beanType的属性的所有约束,属性值为value

相关问题