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

在字段上没有注释的情况下,如何使用Hibernate验证程序?,hibernate,Hibernate,是否可以使用Hibernate validator API将经过验证的对象存储在带有注释的字段中?例如,我想通过调用Java方法来验证电子邮件地址,而不是在JavaBean属性上添加@Email注释。是的,这是可能的。试一试 Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); Car car = new Car(null); Set<ConstraintViolation<

是否可以使用Hibernate validator API将经过验证的对象存储在带有注释的字段中?例如,我想通过调用Java方法来验证
电子邮件
地址,而不是在JavaBean属性上添加
@Email
注释。

是的,这是可能的。试一试

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

Car car = new Car(null);

Set<ConstraintViolation<Car>> constraintViolations =
    validator.validateProperty(car, "manufacturer");
Validator Validator=Validation.buildDefaultValidatorFactory().getValidator();
轿厢=新车(空);
设置约束条件=
验证人。验证财产(汽车,“制造商”);

看看。

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

Validator Validator=Validation.buildDefaultValidatorFactory().getValidator();
字符串emailAddress=“…”;
设置约束变量=
validator.validateValue(User.class,“email”,emailAddress);
从文件中:

验证类
beanType
的名为
propertyName
的属性上放置的所有约束。属性值是否为
value


Re:“创建一个你不需要的虚拟汽车对象”-但你展示的例子是使用汽车实例。OP(我也是!)试图在没有任何目标的情况下实现这一目标。。例如“是字符串”xyz@yahoo.com“一个有效的电子邮件地址?@RoyTruelove:嗯,我写这封信时似乎有些困惑,现在我记不起细节了。谢谢你指出这一点。看起来,
validateValue
是正确的方法,但最后一个参数应该是正在验证的值,例如
制造商
电子邮件地址
。我将更新这个结果的答案(尽管我还没有测试过)。
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

String emailAddress = "...";

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