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]+")
private String code;
}

И PojoB используется в качестве тела запроса /testSpringValidation1, проверки включены.
Теперь относительно нового API /testSpringValidation2, pojoA.code может допускать больше символов и без изменений/отличий от других правил проверки, сравнивающих /testSpringValidation1. Итак, @Pattern(regexp = "[0-9a-z]+", groups = LessValidation.class) добавляется. Но как это реализовать без изменения существующего кода?

Код: Выделить всё

public interface LessValidation extends Default {
}

Код: Выделить всё

    @PostMapping("/testSpringValidation2")
public PojoB testSpringValidation2(@RequestBody @Validated({LessValidation.class}) PojoB reqBody) {
return reqBody;
}

Код: Выделить всё

@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;
}
При вызове API /testSpringValidation2 по этому телу запроса

Код: Выделить всё

{
"code":"12345",
"pojoA":{
"code": "12ab"
}
}
Я получил эту ошибку

Код: Выделить всё

error:
{
"type": "error",
"code": "400",
"details": "mandatory parameter pojoA.code is invalid: must match \"[0-9]+\""
}
Но если я не сделаю LessValidation расширением по умолчанию, другие правила проверки (например, проверки pojoB.code) также будут пропущены.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... ng-other-a
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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