验证弹簧启动时的嵌套模型

时间:2016-12-06 22:07:57

标签: java spring validation jackson hibernate-validator

我对嵌套模型的验证有问题,请看:

id

在弹簧控制器中:
class A{ @NotNull Integer i; B b; } class B{ @NotNull Integer j; }

它正确验证@Valid @RequestBody...,但不验证i。如何强制Spring进行任意深度验证?

第二件事:
是否可以进行以下验证:类的对象' A'仅适用且j i j中只有一个null

class A{
   Integer i;
   Integer j;
}

1 个答案:

答案 0 :(得分:8)

支持对象图验证,您必须使用B b注释@Valid,如下所示。

class A{
  @NotNull
  Integer i;
  @Valid
  B b;
}

请参阅https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/?v=5.3#section-object-graph-validation了解详情。

对于问题的第二部分,您可以创建自定义Validator类。您还需要该Validator的自定义注释。您可以在文档页面here查看详细信息。自定义验证程序的示例为here