Spring Validation: как добавить новое правило проверки, не затрагивая другие и родительские поля?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Validation: как добавить новое правило проверки, не затрагивая другие и родительские поля?

Сообщение Anonymous »

У меня есть класс 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»