Eu estava seguindo um exemplo de um livro sobre o hibernate e lá estava explicando sobre associação para a própria classe, ou seja, um pai pode ter vários filhos. o mapeamento dele estava assim:
porém, eu queria fazer com que um pedido tivesse vários itens, e a chave extrangeira estaria na tabela de pedido. Ou seja, seria One-to-many, com esse mapeamento eu não consegui entender…
No meu caso, como eu já tenho os Estados salvos, eu carrego o Estado que a cidade faz parte, daí na cidade faço
cidade.setEstado(estado);sessao.save(cidade);
Isso resolve já
ps.: Não crie mais de um tópico sobre a sua dúvida… mantenha em um só e acompanhe-o… não seja deselegante
ThiagoWorldCoder
Desculpe o mau jeito de ter postado outra pergunta, é que eu achei que ninguém ia responder novamente essa minha dúvida.
O mapeamento eu fiz do jeito que você falou, mas eu não entendi como seria feita a inserção.
por exemplo lá no banco deveria ter registrado o mesmo estado duas vezes com o mesmo id mas, cada um apontando para uma cidade diferente não é assim?
como eu escreveria uma inserção, quando eu fosse salvar um estado e logo em seguinda duas cidades pra esse estado?
eu estou procurando eu todos os lugares, sempre mostram o mapeamento como é feito e não mostram a inserção direito como seria!!
por favor me ajudem!! Eu não sei mais o que fazer…
grato pela atenção!
Gobain
Quem contém a chave estrangeira é a cidade, e não o estado. Não é o estado q faz parte da cidade, e sim o contrário. Com isso eu parto de um princípio que temos um número fixo de estados no país (lógico não?), e não vamos alterá-los o tempo todo ou gravar novos estados constantemente, certo? Então para gravar uma nova cidade, eu faço assim:
Tae… é assim q faço qd preciso gravar uma nova cidade. Mas mesmo assim, se vc for salvar um novo estado, pode ser feito assim:
sessao.beginTransaction();/* Aqui eu crio e salvo o novo estado */Estadosestado=newEstado(nme_estado,sig_estado);sessao.save(estado);/* Crio uma cidade e adiciono o estado a ela */Cidadesjacupiranga=newCidades(nme_cidade);jacupiranga.setEstado(estado);/* Crio outra cidade e adiciono o estado a ela */Cidadesparaisopolis=newCidades(nme_cidade);paraisopolis.setEstado(estado);/* Salvo as cidades e finalizo a transação */sessao.save(jacupiranga);sessao.save(paraisopolis);sessao.getTransaction().commit();
Acho q isso da alguma luz, certo?
ThiagoWorldCoder
Valeu pela ajuda, se com essa ajuda eu não conseguir posso parar!!!
brigadão!
Gobain
Opa, tinha um errinho ali q eu vi agora, mas já corrigi… tava sem o save estado :roll: