Hibernate Validator不会验证使用约束注释注释的方法参数

时间:2019-06-13 15:15:45

标签: jackson hibernate-validator spring-validator javax.validation

我有一个pojo,这对于多种服务是通用的,并且每个服务都有针对该对象的不同验证规则。因此,我在每个服务中都扩展了该pojo,并覆盖了一些设置方法,并对那些被覆盖的方法进行了约束验证。 pojo是通过REST调用从提交的json构建的。杰克逊是应该调用二传手的库。

    @JsonSetter("name")
    public void setName(@Length(min = 1, max = 50) @NotBlank String name) {
        this.name = name;
    }

这是我的REST方法声明:

public ResponseEntity<?> createEntity(@Valid @RequestBody EntityDTO entity) {

似乎验证不适用于Jackson,因为我看到其他方法调用了validateParameters的{​​{1}}方法。

这就是我的org.hibernate.validator.internal.engine.ValidatorImpl bean的样子:

ValidationConfiguration

我还对请求参数进行了一些验证,并且效果很好。但是,此设置不适用于此设置器。

1 个答案:

答案 0 :(得分:0)

我无法在setter上使用它,但是,很奇怪的是,对getter进行了验证。即使没有明确调用吸气剂。似乎与杰克逊有关?

    @Override
    @Length(min = 1, max = 50)
    @NotBlank
    public String getName() {
        return super.getName();
    }