Как применить @Validated к телу запроса списка?JAVA

Программисты JAVA общаются здесь
Anonymous
Как применить @Validated к телу запроса списка?

Сообщение Anonymous »

Дано:

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

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class VocabularyRequest {
@Null(groups = CollectionCreation.class)
@NotNull(groups = VocabularyCreation.class)
private Long collectionId;

@Valid private List meaningVariants;
}
Этот @Validated работает:

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

  @PostMapping(consumes = APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
@Override
public Mono create(
@Validated(VocabularyCreation.class) @RequestBody VocabularyRequest request) {
return super.create(request);
}
Но это (применительно к списку) не:

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

  @PostMapping(value = "/bulk", consumes = APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
@Validated(VocabularyCreation.class)
public Flux createBatch(
@RequestBody List requests) {
return service(VocabularyService.class).createBatch(requests);
}
Изменить это все равно не работает:

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

  @PostMapping(value = "/bulk", consumes = APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
public Flux createBatch(
@Validated(VocabularyCreation.class) @RequestBody List requests) {
return service(VocabularyService.class).createBatch(requests);
}
При переходе на запросы @RequestBody List возникает ошибка компиляции:

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

'@Validated' not applicable to type use
Как указано в названии, есть ли решение? Спасибо за помощь!!

Подробнее здесь: https://stackoverflow.com/questions/785 ... quest-body

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