Mapeamento Hibernate

Olá pessoal.

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???

Aluno -------------------------- Turma
|
|
|

              Nota

Aluno --------Aluno_Turma -------- Turma

                     |
                     |
                     |

                  Nota

Tabela Aluno:
id_aluno (pk)
nome
telefone

Tabela: Turma:
id_turma (pk)
descricao

Tabela Nota:
id_nota (pk)
id_aluno (fk)
id_turma (fk)
materia

Tabela Aluno_Turma:
id_aluno (fk)
id_turma (fk)

Obrigados a todos

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…

espero ter ajudado…

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?

Obrigado,

MPSV

caro MPSV,

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…

espero ter ajudado…

flw

Entendi o que vc quis explicar.

Vou implementar com POJO.

Obrigado!