Olá pessoal,
To fazendo uma pesquisa aqui no fórum, mas num encontrei exatamente o que queria. Tenho o seguinte problema, fiz o mapeamento ManyToMany em JPA usando o Hibernate.
São tres tabelas: Aluno, aluno_turma, Turma.
Aluno | aluno_turma | Turma
id int pk | aluno_id fk | id int pk
nome varchar | turma_id fk | …
No mapeamento, fiz bidirecional, tudo normal. Quando salvo, salva normalmente o aluno e sua turma relacionada. Porém, quando salvo novamente o mesmo aluno, para outra turma, ele é deletado e reinserido para a nova turma. Ou seja, não posso colocar um aluno em 2 turmas diferentes.
No mapeamento, fiz assim:
Entidade Aluno:
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="aluno_turma",
joinColumns=@JoinColumn(name="aluno_id"),
inverseJoinColumns=@JoinColumn(name="turma_id"))
private Collection<Turma> turmas;
Entidade Turma:
@ManyToMany(fetch=FetchType.LAZY, mappedBy="turmas", targetEntity=Aluno.class )
private Collection<Aluno> alunos;
Bom gente, por eu ser iniciante ao extremo, não consegui entender o porque isso ocorre. O que eu queria seria poder salvar o mesmo aluno em diversas turmas.
Valeu gente