javax验证可与继承一起使用吗?

我正在尝试验证从另一个模型继承的模型,并且该父模型具有 @NotBlank 批注以验证参数。但是,此验证在接受子类对象列表的控制器中被绕过了。

代码段应该对场景有一个清晰的认识

public abstract class A {
  @NotBlank
  private String name;
}

public class B extends A {
  private String type;
}

@PostMapping(consumes= MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity saveRoles(@Valid @RequestBody List<B> roles){
   // ideally it should not land here if request has blank name. But it seems to land here.
   // logic 
}

请求正文-

[
    {
        "name": "","type": "system"
    }
]

iCMS 回答:javax验证可与继承一起使用吗?

您试图验证集合本身,而不是集合元素。试试这个:

@PostMapping(consumes= MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity saveRoles(@RequestBody List<@Valid B> roles){
  
}
本文链接:https://www.f2er.com/1561349.html

大家都在问