Relacionamento com Hibernate

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

Estas são minhas entidades :

package model;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

@Table(name = "e_aula")
@Entity
public class Aula implements Serializable {

    /**
     * Valter Gomes da Silva Junior
     */
    private static final long serialVersionUID = 1L;
    @Id
    @PrimaryKeyJoinColumn 
    @Column(name = "ide_aula")
    private int id;
    @Column(name = "nome")
    private String nome;
    @Column(name = "serie")
    private String serie;
    @Column(name = "url")
    String url;
    //FK's
    @JoinColumn(name="aula_id" , referencedColumnName="ide_aula")
    @OneToMany
    private List<Imagem> imagem;

   // getters e setters


@Table(name = "e_imagem")
@Entity
public class Imagem implements Serializable {

	/**
	 * Valter Gomes da Silva Junior
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue
        @PrimaryKeyJoinColumn
	@Column(name = "ide_imagem")
	private int id;

	@Column(name = "nome")
	private String nome;

	@Column(name = "url")
	private String url;

        
	@JoinColumn(name="ide_imagem" , referencedColumnName="imagem_id")
        @OneToOne
	private Som som;

	@Column(name = "aula_id")
	private int aula_id;
        
     // getters e setters


@Entity
@Table(name = "e_som")
public class Som implements Serializable {

    /**
     * Valter Gomes da Silva Junior
     */
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "ide_som")
    private int id;
    @Column(name = "nome")
    private String nome;
    @Column(name = "url")
    private String url;
    //FK's
    @Column(name = "imagem_id")
    private int imagem_id;
  // getters e setters

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

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?

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

Cara valeu msm pela ajuda, vou fazer os testes seguindo esta linha e posto aqui os resultados.
Obrigado pela força

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 :wink:

abss