проверка ограничений на @RequestParam не работает - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть операция GetAll, которая вытягивает всех сотрудников в deptNo. Я хочу добавить ограничение, которое проверяет размер на deptNumber на моем RequestParameter, но это не похоже на проверку параметра. Как я могу добиться проверки?

    public ResponseEntity<PagedResources<EmpSummary>> getEmps(
@Valid @RequestParam @Max(1) @Max(999) Optional<Long> deptNUmber)

@Controller
@Validated
@RequestMapping("/v1")
@RequiredArgsConstructor
public class OntApiController implements OntApi {
    private final OntService service;
    private NativeWebRequest    nativeWebRequest;
    private HttpServletRequest  httpServletRequest;

    @Override
    public ResponseEntity<PagedResources<OntSummaryResource>> getOnts(
            @Valid @RequestParam @Min(1L) @Max(999L) Optional<Long> ontNumber,
            @Valid @RequestParam @Min(1) @Max(999) Optional<Integer> model,
            ...... more parameters);

javax.validation.UnexpectedTypeException: HV000030: Не удалось найти валидатор для ограничения 'javax.validation.constraints. Макс 'проверяющий тип' java .util.Optional '. Проверьте конфигурацию для

    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
    </dependency>

1 Ответ

1 голос
/ 19 апреля 2020

Согласно документации : вы должны добавить аннотацию @Validated к контроллеру, если вы используете проверку аргументов метода.

Теперь ваш код будет выглядеть так:

@RestController
@RequestMapping("/your_api")
@Validated
public class YourController {

   @GetMapping("/your_endpoint")
   public ResponseEntity> getEmps(
     @RequestParam @Min(1) @Max(999) Optional deptNUmber){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...