Ogn*_*šić 8 java validation rest spring
我正在尝试验证有点分层的 DTO(formModel,无论您喜欢什么术语)(继承和依赖其他类)。
是否可以使以下模型配置工作:
public abstract class A {
@NotNull
private String fieldA1;
@NotNull
@Size(min = 2, max = 30)
private String fieldA2;
// ... and so on
}
public class B extends A {
@NotNull
private String fieldB1;
@NotNull
private Xyz fieldB2;
// and so on
}
public class Xyz {
@NotNull
private String fieldXyz1;
// etc..
}
Run Code Online (Sandbox Code Playgroud)
弹簧架控制器:
@PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity addCustomer(@RequestBody @Valid B customerDto, BindingResult bindingResult) {
// controller logic here
}
Run Code Online (Sandbox Code Playgroud)
问题是:只有似乎“有效”的约束注释是父类 A 上的那些。我提交了一个在 A 类中包含错误字段的请求,bindingResult.hasErrors()
返回 true。如果我提交的请求在 B 类或 Xyz 类中包含错误字段,bindingResult.hasErrors()
则为 false,并且控制器会继续像请求一样正常运行。任何想法为什么?