我目前正通过这种代码验证我的bean:
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
validator.validateValue(class, propertyName, value);
我的课程如下:
public static interface Primitive {
public Primitive setString(String s);
@NotNull
public String getString();
}
到目前为止,此工作正常。但似乎普通的hibernate验证器不可能从给定的类中获取约束定义/映射,并添加如here所述的其他约束。看起来约束映射都是手动的,我不喜欢todo。另一方面,我使用Validator.getConstraintsForClass(class)
得到的BeanDescriptor似乎不能用于ConstraintMapping。
这就是我的想法:
ConstraintMapping mapping = new ConstraintMapping();
mapping
.type(Order.class).getConstraints()/*reads the constraints declared on the Bean*/
.property("customer", ElementType.FIELD)/*add additional constraints*/
.constraint(NotNullDef.class);
Validator validator = Validation
.byProvider(HibernateValidator.class)
.configure()
.addMapping(mapping)
.buildValidatorFactory()
.getValidator();
答案 0 :(得分:1)
程序性约束API已经添加,这意味着您不需要建议的 getConstraints 。另请参阅Validator在线文档 - http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-programmatic-api
默认情况下,通过流畅的API添加的约束可以添加到 通过标准配置功能配置的约束。 但也可以忽略注释和配置的XML 必要时的限制。