Пропустить недопустимые элементы массива/коллекции, помеченные @Valid.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Пропустить недопустимые элементы массива/коллекции, помеченные @Valid.

Сообщение Anonymous »

У меня есть простой контроллер Rest, в котором я принимаю проверенный объект:

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

@RestController
@RequestMapping("v1/games")
public class GameController {
@PostMapping
public GameCreateOutWeb create(@RequestBody @Valid GameWeb dto) {
//some request handling
}
}
Вот как выглядит GameWeb DTO:

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

public record GameWeb(@NotBlank String localId, @NotBlank String name,
List slots) {
}
Вот как выглядит DTO SlotWeb:

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

public record SlotWeb(@NotNull SlotColor color, @NotNull SlotStatus status, PlayerWeb player) {
public record PlayerWeb(Long id, String name) {
}
}

public enum SlotStatus {
OPEN((short) 0), CLOSED((short) 1), OCCUPIED((short) 2);

private final short statusCode;

//constructor and getter
}

public enum SlotColor {
RED((short) 0), BLUE((short) 1), TEAL((short) 2), PURPLE((short) 3), YELLOW((short) 4), ORANGE((short) 5);

private final short colorCode;

//constructor and getter
}

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

@SlotВ аннотации 
используется собственный валидатор:

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

@Target(TYPE_USE)
@Retention(RUNTIME)
@Constraint(validatedBy = {SlotValidator.class})
public @interface Slot {
String message() default "If slotStatus == OCCUPIED(2) then player field must not be null.";

Class[] groups() default {};

Class

Подробнее здесь: [url]https://stackoverflow.com/questions/79086580/skip-invalid-array-collection-elements-annotated-with-valid[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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