我刚刚将hibernate-validator-5.1.3.Final.jar
添加到我的类路径并注释了一个POJO:
public class Person {
@NotNull
private String name;
// etc...
}
然后我开始用司机测试它:
public class Driver {
public static void main(String[] args) {
Person p = new Person();
p.setName(null);
}
}
执行此操作时不会抛出任何验证错误 - 我哪里出错?
答案 0 :(得分:7)
您应该运行验证引擎以检查它是否有效:
public class Driver {
public static void main(String[] args) {
Person p = new Person();
p.setName(null);
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Set<ConstraintViolation<Person>> constraints = factory.getValidator().validate(p);
// constraint will have the results of validation
}
}
您还需要将javax.validation:validation-api
添加到类路径中。
大多数框架在场景后面执行这些验证逻辑以避免样板代码。