Relacionamento @OneToMany e @ManyToOne

2 respostas
mondor

Fala galerinha, tudo na paz?

Estou com uma dúvida sobre o relacionamento no hibernate.

Digamos por exemplo um cenário Curso x Disciplina

Cada disciplina só existe para um curso, não existe por exemplo a disciplina A para curso 1, 2 e 3. Tem que ser apenas um deles.

Bom minha dúvida é a seguinte,

public class Curso { @OneToMany private List<Disciplina> disciplinas; }

e…

public class Disciplina { @ManyToOne private Curso curso; }

A minha dúvida é, ao se cadastrar o curso e as disciplinas, como ficaria a tabela no banco de dados?

A tabela disciplina acredito que ficaria como exemplo

disciplina A - curso bla
disciplina B - curso ble
disciplina C - curso bla
disciplina D - curso bla
disciplina D - curso blo

E a tabela curso ficaria com apenas os cursos? Ou iria criar uma linha para cada disciplina na list?

curso bla - como ficaria o list na tabela?
curso ble - como ficaria o list na tabela?
curso blo - como ficaria o list na tabela?

2 Respostas

E

Voce poderia mapear assim

public class Disciplina {  
          @ManyToOne  
          @JoinColumn(name = "id_curso")
          private Curso curso;  
    }  



 public class Curso {  
      @OneToMany (mappedBy = "curso") 
      private List<Disciplina> disciplinas;  
}

então pensando em banco vc teria a tabela disciplina (o lado many da relação) com uma FOREIGN KEY id_curso

e na classe Curso vc sinaliza que ja fez o mapeamento na classe Disciplina

espero ter ajudado

mondor

putz, ajudou e muito! hoje a noite vou fazer um teste e verificar, obrigado :smiley:

aproveitando, tem algum tutorial que a galera aconselha sobre essas anotações?

Criado 17 de agosto de 2011
Ultima resposta 17 de ago. de 2011
Respostas 2
Participantes 2