Pequenos e úteis trechos de código.

O código abaixo implementa um relacionamento muitos para muitos, o que no banco de dados será convertido em mais uma tabela para expressar este relacionamento.

No caso abaixo é um relacionamento entre professor e turma, onde um professor pode estar em várias turmas e uma turma pode ter vários professores.

O código abaixo deve ser implementados na classe de turma.

@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name=”turma_professor”,
joinColumns = @JoinColumn(name=”turma_id”),
inverseJoinColumns = @JoinColumn(name=”professor_id”))
private Collection<Professor> professor;

O código abaixo deverá ser implementado na classe de professor

@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name=”turma_professor”,
joinColumns = @JoinColumn(name=”professor_id”),
inverseJoinColumns = @JoinColumn(name=”turma_id”))
private Collection<Turma> turmas;

O resultado desta implementação no banco de dados será uma tabela chamada turma_professor com dois campos: professor_id e turma_id.