Olá,
tenho um código bem simples de CRUD em spring que por algum motivo não está fazendo bind da propriedade id (int id)
a entidade:
public class Entidade{
private int id;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Integer getId(){
return id;
}
public void setId(int id){
this.id = id;
}
}
o jsp dele:
<form:form method="post" commandName="entidade" action="/app/admin/entidade/editar">
<form:hidden path="id" />
</form:form>
o controller:
@RequestMapping(method = RequestMethod.GET, value="/editar/{id}")
public String editar(@PathVariable("id") int id, Model model) {
Entidade entidade = this.entidadeRepositorio.get(id);
model.addAttribute(entitade);
return "admin/entidade/editar";
}
@RequestMapping(method = RequestMethod.POST, value="/editar")
public String editar(Entidade entidade) {
logger.info("pegou entidade "+entidade.getId()); // --> ID SEMPRE VEM ZERO!!!
this.entidadeRepositorio.update(entidade);
return "redirect:/app/admin/entidade";
}
a entidade tem outros campos, e todos vêm corretamente preenchidos… o problema é mesmo o id que vem sempre zero… é grave pq o hibernate usa o id para identificar se eh uma instância nova ou uma já existente
eu achei q o AutoGenerated na Entidade poderia estar interferindo no bind, mas eu retirei e o problema continou… alguém tem alguma luz?
agradeço qqler ajuda
abraços