@Valid (javax.validation.Valid) 对于列表类型不是递归的

Ani*_*kar 6 java spring-mvc hibernate-validator spring-boot javax.validation

控制器:

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

class Child {
  @NotNull
  private String name;
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 6

你有没有像这样尝试过:

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

    @Valid
    List<Child> children;
}
Run Code Online (Sandbox Code Playgroud)