Olá,
Tentei fazer uma conversão de data da forma mais simples possível, usando o primeiro exemplo da aula de conversão de data sendo assim, meu modelo ficou dessa forma:
@DateTimeFormat(pattern="dd/MM/yyyy")
private Calendar diaEleicao;
@Enumerated(EnumType.STRING)
private AndamentoEleicao andamento = AndamentoEleicao.ABERTA;
public Calendar getDiaEleicao()
{
return diaEleicao;
}
public void setDiaEleicao(Calendar diaEleicao)
{
this.diaEleicao = diaEleicao;
}
E meu Controller :
@RequestMapping(value="/eleicoes",method= RequestMethod.POST)
public ModelAndView salvar(@Valid Eleicao eleicao, BindingResult result, RedirectAttributes attributes)
{
if(result.hasErrors())
{
return listaEleicaos(eleicao);
}
System.out.println(eleicao.getDiaEleicao());
service.Salvar(eleicao);
attributes.addFlashAttribute("mensagem", "Eleição Salva com sucesso :" + eleicao.getDiaEleicaoFormatado());
return new ModelAndView("redirect:/eleicoes");
}
Em todo caso a entidade é persistida no banco de dados, o campo andamento é preenchido corretamente, mas o campo diaEleicao fica como "null", entretanto ao invocar o metodo salvar, eu faço um "sysout" dessa data, e também jogo na tela um versão formatada da mesma, e a data não é nula... a conversão está sendo feita, mas no banco o valor não é salvo. Abaixo a saída do console:
Fri Feb 17 00:00:00 BRST 2017 Hibernate: insert into eleicao (andamento, dia_eleicao) values (?, ?)
Aonde pode estar o erro ? eu também já fiz as anotações @Temporal pra ver se mudava alguma coisa, mas foi sem efeito.