对具有组的嵌套对象进行javax验证

时间:2017-01-04 06:21:28

标签: java validation spring-mvc bean-validation

这是我的java代码

class AbstractO{
     public interface Save{}; // for groups
     public interface Update{}; // for groups
}
class A extends AbstractO{
     public Integer id;
     @NotNull(groups={A.Save.class})
     @Valid
     public B b;
}
class B extends AbstractO{
     @NotNull(groups={B.Update.class})
     public Integer id;
     @NotNull(groups={A.Save.class})
     public Integer prop

}

//控制器方法

@ResponseBody
public ResponseEntity<A> save(@RequestBody @Validated(value = { A.Save.class }) A ,
            BindingResult bindingResult) {
// code goes here...
}

问题

在保存时我想要验证。验证组在控制器方法中设置为A.Save,因此类B b中的A将被验证为notnull。

但是,我希望在保存prop的同时验证B个班级A,因此我在@Valid添加了B b并提到了群组{{ 1}}在prop上,以便仅在A被保存时进行验证。

我的问题是,即使A.Save的B在id作为群组,它仍然在控制器中验证(具有群组B.Update)。问题可能是A.Save注释,但没有该注释,它不会验证嵌套的东西。

0 个答案:

没有答案