Estou fazendo o mapeamento para o Hibernate via XML e ficou uma dúvida. Veja quem pode ajudar.
Tenho duas tabelas com a relação N:M (muitos para muitos) e uma terceira tabela que se relaciona com a tabela associativa histórica. Esta tabela associativa histórica apresenta apenas as chaves estrageiras das outras duas tabelas.
As tabelas são: Aluno, Turma e Notas.
Tabela associativa: Aluno_Turma
Então, a tabela Aluno tem relacinamento com a tabela Turma de N:M. Ou seja, um aluno tem uma ou mais turmas e turmas tem um ou mais alunos. No entanto, temos uma tabela associantiva (histórica) com as chaves primarias de cada uma das tabelas (aluno e turma) formando a tabela aluno_turma.
A outra tabela Nota tem relacinamento com a tabela Aluno_Turma 1:N em que diz: uma nota está associada a um aluno de uma determinda turma. E um aluno de uma determinada turma tem 1 ou mais notas.
Minha dúvida é se devo criar POJO (classe) para a tabela Aluno_Turma e o mapeamento (XML). Como ficaria em termos de Hibernate???
cara, eu ja postei em uma serie de topicos aqui sobre relacionamento M…N, mas soh uma duvida em relação ao seu modelo de banco…como um aluno pode ser de varias turmas?e a sua tabela Nota, não pode ser apenas um campo dentro da tabela associativa?
o ideal não seria:
Aluno 1…1 Turma
Aluno M…N Materia
Na tabela Aluno_Materia
pk_aluno(fk)
pk_materia(fk)
nota
isso se o aluno tiver apenas 1 nota por materia, se vc for trabalhar com varias notas, tipo uma por bimestre, ou com tipos de notas, como nota de trabalho, nota de prova, etc…aih tem um pouco mais de trabalho…
Amigo pedrobusko, na verdade este modelo é apenas uma idéia. É um estudo de caso. O que preciso é saber como isso se dará em termos de Mapeamento Hibernate.
Claro que o modelo poderia ser melhorado, alterado, refeito. Mas esta idéia de modelo com uma tabela associativa e uma terceira tabela se relacionando com esta tabela associativa é que não entra em minha cabeça.
Como ficaria o mapeamento, seria necessário criar as classes POJO para a tabela associativa, para a terceira tabela que se relaciona diretamente com a tabela associativa?
a partir do momento q vc fizer um relacionamento com a tabela associativa, essa tabela não tera mais apenas a PK composta, de FKs das PKs das tabelas das duas pontas…
essa tabela associativa, tera um terceiro campo, q sera uma FK apenas, essa FK nao vai fazer parte da PK composta…
portanto agora existe a necessidade de vc criar um POJO para essa tabela, mapeando agora, com 2 relacionaments many-to-one na tabela associativa, para “representar” o many-to-many, e mais um tercerceiro relacionamento q eh o caso q vc esta discutindo…
espero nao ter sido muito enrolado na minha explicação, hehehehe…