У меня есть класс PojoB, который содержит поле code и поле класса PojoA:
@Data
public class PojoB {
@Size(min = 1, max = 5)
@NotBlank()
@Pattern(regexp = "[0-9]+")
private String code;
@Valid
private PojoA pojoA;
}
@Data
public class PojoA {
@Size(min = 1, max = 5)
@NotBlank()
@Pattern(regexp = "[0-9]+")
@Pattern(regexp = "[0-9a-z]+", groups = LessValidation.class)
private String code;
}
Теперь я надеюсь, что код, хранящийся в PojoA, в некоторых случаях может допускать больше символов, но это не повлияет/изменится на проверку PojoB.code . Итак, добавляется @Pattern(regexp = "[0-9a-z]+", groups = LessValidation.class).
public interface LessValidation extends Default {
}
@PostMapping("/testSpringValidation1")
public PojoB testSpringValidation1(@RequestBody @Validated PojoB reqBody) {
return reqBody;
}
@PostMapping("/testSpringValidation2")
public PojoB testSpringValidation2(@RequestBody @Validated({LessValidation.class}) PojoB reqBody) {
return reqBody;
}
Но вызов API /testSpringValidation2 по этому телу запроса
{
"code":"12345",
"pojoA":{
"code": "12ab"
}
}
Я получил эту ошибку
error:
{
"type": "error",
"code": "400",
"details": "mandatory parameter pojoA.code is invalid: must match \"[0-9]+\""
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ng-other-a
Spring Validation: как добавить новое правило проверки, не затрагивая другие и родительские поля? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Подавить стандартный вывод сопрограммы, не затрагивая другие сопрограммы в Python
Anonymous » » в форуме Python - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-