Olá, estou começando com o Spring e tenho uma dúvida.
Estou tentando retornar uma lista de Produtos em Json quando acessar "relatorio-produtos". Essa lista de produtos vai ser filtrada a partir de uma data (Calendar) passada via GET (relatorio-produtos?data=2017-3-21).
Controller
@RequestMapping(value = "/relatorio-produtos/{data}", method = RequestMethod.GET)
@ResponseBody
public List<Produto> listaFiltroDataJSON(@PathVariable("data") Calendar dataLancamento) {
List<Produto> produtos = dao.findPorData(dataLancamento);
return produtos;
}
DAO
public List<Produto> findPorData(Calendar dataLancamento) {
return manager.createQuery("select distinct(p) from Produto p join fetch p.precos precos where p.dataLancamento > :dataLancamento", Produto.class)
.setParameter("dataLancamento", dataLancamento)
.getResultList();
}
Quando tento acessar recebo o seguitne erro no console:
Erro
Failed to convert value of type 'java.lang.String' to required type 'java.util.Calendar'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.PathVariable @org.springframework.format.annotation.DateTimeFormat java.util.Calendar] for value '2018-07-27'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2018-07-27]
Alguém tem uma dica de como eu poderia continuar?
PS.: Estou tentando fazer o teste da Formação Desenvolvedor Java.