Olá Galera, bom dia!
Tenho uma classe Cliente, essa classe tem uma lista de contatos
private List<Contato> contatos;
A minha dúvida é como eu populo essa lista quando o Form for enviado.
Tentei fazer assim, mas não deu certo.
<input type="text" name="cliente.contatos.contato.idContato" value=""/>
<input type="text" name="cliente.contatos.contato.nome" value="Bruno"/>
<input type="text" name="cliente.contatos.contato.email" value="exemplo@exemplo.com.br"/>
Tentei desta maneira, mas não deu certo também
<input type="text" name="cliente.contatos[].contato.idContato" value=""/>
<input type="text" name="cliente.contatos[].contato.nome" value="Bruno"/>
<input type="text" name="cliente.contatos[].contato.email" value="exemplo@exemplo.com.br"/>
Mas, é lançado a seguinte mensagem
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.nextrans.erp.modelo.bean.Contato
Alguém pode me dar uma dica?
Desde já agradeço!
O problema ai não está necessariamente na List do VRaptor e sim na hora de persistência do Hibernate.
Dá um olhada no blog da Caelum que tem um post fantástico sobre esse famoso erro http://blog.caelum.com.br/transientobjectexception-lazyinitializationexception-e-outras-famosas-do-hibernate/
Espero ter ajudado
Jair, value cara, o post ajudou sim, esclareceu algumas coisas!
Mas cara, acho que tenho dois problemas agora então, mas, primeiro tenho que resolver o problema no JSP.
Acredito que as duas formas que fiz estão erradas.
Pode me dizer como seria a maneira correta?
Obrigado!
se as tres propriedades dizem respeito ao mesmo objeto, vc precisa gerar os inputs com índices:
<input type="text" name="cliente.contatos[0].idContato" value=""/>
<input type="text" name="cliente.contatos[0].nome" value="Bruno"/>
<input type="text" name="cliente.contatos[0].email" value="exemplo@exemplo.com.br"/>
<input type="text" name="cliente.contatos[1].idContato" value=""/>
<input type="text" name="cliente.contatos[1].nome" value="Bruno"/>
<input type="text" name="cliente.contatos[1].email" value="exemplo@exemplo.com.br"/>
....