这是我的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
注释,但没有该注释,它不会验证嵌套的东西。