Criei um DTO para receber os filtros de uma tela de consulta e coloquei atributos do tipo Optional
private Optional<Long> cdOrgao = Optional.empty(); private Optional<Long> cdSetor = Optional.empty(); private Optional<Integer> nuEdital = Optional.empty(); private Optional<Integer> nuAnoEdital = Optional.empty(); private Optional<Integer> nuProcesso = Optional.empty(); private Optional<Integer> nuAnoProcesso = Optional.empty(); private Optional<String[]> situacoes = Optional.empty(); private Optional<String> deObejto = Optional.empty();
possuo o seguinte endpoint no meu RestController
@RequestMapping(value = "/avancada", method = RequestMethod.POST) public PageResult<ResultadoConsultaCertameDTO> consultaAvancada(@RequestBody FiltroConsultaCertameAvancadaDTO filtroConsultaAvancada) { Page<Certame> pages = certameService.findCertameByConsultaAvancada(filtroConsultaAvancada); return converterToPageResult(pages); }
e estou tentando enviar o seguinte json para teste
{ "cdOrgao":{"value":1}, "cdSetor":{}, "nuEdital":{}, "nuAnoEdital":{}, "nuProcesso":{}, "nuAnoProcesso":{}, "situacoes":{"value":["AGUARDANDO_CERTAME","CERTAME_ANDAMENTO"]}, "deObejto":{"value":"teste"} }
quando meu controller é acessado os atributos estão vindo todos empty.
OBS: Possuo uma classe semelhante que pesquiso via GET, que também possui atributos do Optional e funciona!
Alguém sabe o que pode estar acontecendo?