首页 > 解决方案 > @Valid (javax.validation.Valid) 对于列表类型不是递归的

问题描述

控制器:

@RequestMapping(...)
public void foo(@Valid Parent p){
}
class Parent {
  @NotNull // javax.validation.constraints.NotNull
  private String name;
  List<Child> children;
}

class Child {
  @NotNull
  private String name;
}

这会触发@NotNullParent.name,但不会检查 Child.name。如何让它触发。我也试过List<@Valid Child> children;用注释来注释子类@Valid,不起作用。请帮忙。

parent = { "name": null }失败。名称不能为空。

child = { "name": null }作品。

标签: javaspring-bootspring-mvchibernate-validatorjavax.validation

解决方案


你有没有这样尝试过:

class Parent {
    @NotNull // javax.validation.constraints.NotNull
    private String name;

    @Valid
    List<Child> children;
}

推荐阅读