Hibernate Validator注释不起作用

时间:2014-11-22 01:27:06

标签: java hibernate bean-validation design-by-contract

我刚刚将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);
    }
}

执行此操作时不会抛出任何验证错误 - 我哪里出错?

1 个答案:

答案 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添加到类路径中。 大多数框架在场景后面执行这些验证逻辑以避免样板代码。