Boa tarde galera, estou desenvolvendo uma aplicação com JSF e Hibernate 3, tenho tres objetos diferentes que se relacionam da seguinte maneira:
Objetos :
Aula,
Imagem,
Som
Aula tem varias imagens,
cada Imagem tem um Som
Dentro da tabela imagem tem o id_aula e dentro e dentro da tebela Som tem id_imagem.
Este relacionamento esta funcionando quando dou o select, mas minha duvida é, como gravar o id de aula em imagem e id de imagem em aula na hora de persistir?
Valeu pela atenção pessoal, aguardo por ajuda…
cole os códigos aonde contem seus relacionamentos
assim fica melhor para te ajuda
J
juniorsml
Estas são minhas entidades :
packagemodel;importjava.io.Serializable;importjava.util.List;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.Id;importjavax.persistence.JoinColumn;importjavax.persistence.OneToMany;importjavax.persistence.Table;importjavax.persistence.Transient;@Table(name="e_aula")@EntitypublicclassAulaimplementsSerializable{/** * Valter Gomes da Silva Junior */privatestaticfinallongserialVersionUID=1L;@Id@PrimaryKeyJoinColumn@Column(name="ide_aula")privateintid;@Column(name="nome")privateStringnome;@Column(name="serie")privateStringserie;@Column(name="url")Stringurl;//FK's@JoinColumn(name="aula_id",referencedColumnName="ide_aula")@OneToManyprivateList<Imagem>imagem;// getters e setters
@Table(name="e_imagem")@EntitypublicclassImagemimplementsSerializable{/** * Valter Gomes da Silva Junior */privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue@PrimaryKeyJoinColumn@Column(name="ide_imagem")privateintid;@Column(name="nome")privateStringnome;@Column(name="url")privateStringurl;@JoinColumn(name="ide_imagem",referencedColumnName="imagem_id")@OneToOneprivateSomsom;@Column(name="aula_id")privateintaula_id;// getters e setters
@Entity@Table(name="e_som")publicclassSomimplementsSerializable{/** * Valter Gomes da Silva Junior */privatestaticfinallongserialVersionUID=1L;@Id@Column(name="ide_som")privateintid;@Column(name="nome")privateStringnome;@Column(name="url")privateStringurl;//FK's@Column(name="imagem_id")privateintimagem_id;// getters e setters
Z
Zabimaru
Fala junior,
Agora que você já mapeou o Model, você não pode simplesmente add uma Lista de Imagens dentro de Aula e mandar um persist?
Acho que o Hibernate já faz o trablho de criar a query que irá persistir o pai e os filhos.
Não sei também se você já resolveu o problema …
abss
J
juniorsml
Bom Dia Zabimaru, ainda não resolvi não, sera que com este relacionamento ja feito, o proprio hibernate vai entender que tenq colocar o id na minha FK, vc sabe como funciona isso no hibernate?
Z
Zabimaru
Fala Junior …
Cara eu to meio enferrujado no Hibernate, mas acredito, que quando você manda persistir a Aula ele já reconhece os filhos dentro da mesma, então manda persistir o pai primeiro, pega o Id desse cara e faz o insert nos filhos com o ID do pai que ele acabou de persistir.
Dei uma caçada no google e achei uma situação de um cara parecida com a sua :
Na resposta que ele marcou como ok, a pessoa que respondeu falou que ao persistir o pai ele já persisti tudo … tem uma configuração no config que você pode colocar um query. show = true, dá uma olhada, coloca true qe vai aparecer a query que ele faz.
abss
J
juniorsml
Cara valeu msm pela ajuda, vou fazer os testes seguindo esta linha e posto aqui os resultados.
Obrigado pela força
Z
Zabimaru
fala junior,
Opa tamos ai … só não deixa de colocar um Resolvido e qual foi a solução do problema quando estiver tudo ok … assim aprendemos juntos