Java 程序性和声明性约束声明
我目前正在通过以下代码验证我的bean:Java 程序性和声明性约束声明,java,hibernate-validator,Java,Hibernate Validator,我目前正在通过以下代码验证我的bean: Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); validator.validateValue(class, propertyName, value); 我的课程是这样的: public static interface Primitive { public Primitive setString(String s); @N
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
validator.validateValue(class, propertyName, value);
我的课程是这样的:
public static interface Primitive {
public Primitive setString(String s);
@NotNull
public String getString();
}
到目前为止,这一切都很顺利。但是,使用普通的hibernate验证器,似乎不可能从给定的类中获取约束定义/映射,也不可能像前面描述的那样添加额外的约束。看起来约束映射都是手动的,我不喜欢这样做。另一方面,我使用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();
编程约束API已经是可添加的,这意味着您不需要建议的getConstraints。另请参见验证程序在线文档- 默认情况下,通过fluent API添加的约束将添加到 通过标准配置功能配置的约束。 但也可以忽略注释和配置的XML 必要时的限制