0

我正在尝试验证一个模型,该模型继承自另一个模型,并且该父模型具有@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"
    }
]

4

1 回答 1

0

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

@PostMapping(consumes= MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity saveRoles(@RequestBody List<@Valid B> roles){
  
}
于 2020-09-16T06:24:30.980 回答