Collection Hibernate

4 respostas
dugbuddy

Olá Galera,

Estou com uma duvida…

Eu tenho a seguinte situacao:
Uma tabela GABARITO, nela eu vou ter as o numero das perguntas e o valor das respostas.
Os numeros da pergunta e valor da resposta eu recupero de 2 tabelas. TESTE_PERGUNTA e TESTE_RESPOSTA.

Eu vou recuperar todas as perguntas e respostas e salvar em um unica vez, sendo assim vou ter uma collection.
Mas quero q tudo esteja na tabela GABARITO

===Gabarito===
id_Gabarito | id_Pergunta | id_Resposta | id_teste
1_|1|3|___1
2
|2|6|___1
3
|3|2|____1

e assim sucessivamente.

Eu tento usar @ManyToMany, mas ele gera uma nova tabela.
@ManyToOne… nao posso colocar como Collection

COmo eu posso fazer isso ?

muito obrigado

4 Respostas

renzonuccitelli

Se eu entendi bem, um aluno fará várias provas, e cada provará será feita por vários alunos. Nesse caso, de um relacionamento NxN, sempre é gerada a tabela intermediaria. Basicamente não existe relacionamento NxN em um BD, ele sempre faz essa tabela intermediária. Imagina como seria feito um join em um relaciomento desses, o BD ia ter que procurar vários indíces. Já com a tabela intermediária, quando vc quer saber qtos alunos fez determinada prova, ele faz o join dos alunos na tabela da prova, e quando vc quer saber qtas provas fez um aluno, ele faz o contrário.
Enfim, Não liga para tabela intermediária, e se vc precisar acrescentar informações que dizem respeita a um aluno em determinada prova, já terá essa tabela intermediária.
Recomendo a vc dar uma lida nos conceitos sobre banco de dados.

dugbuddy

renzonuccitelli,

Entendi… ele sempre vai fazer essa tabela intermediaria…

Tem com eu colocar entao um ID nessa tabela intermediaria usando annotations?

obrigado

renzonuccitelli

Se vc kiser, pode criar uma classe intermediaria, Digamos, ProvaAluno. Ai nela vc poderia colocar um ID, e faria o relacionamento OneToMany dela para as demais (Prova e Aluno). Mas se vc não precisar ter nenhuma informação nessa classe intermediária, então nem a crie, uso o ManyToMany e seja feliz. Se no futuro vc ver que precisa dessa classe intermediária, poderá alterar sem problemas, só vai precisar ver o nome da tabela que o Hibernate vai ter ter criado pra vc.

[]s

renzonuccitelli

Ah, um exemplo de informação poderia ter um comentário nessa classe intermediária, dizendo se o aluno colou ou não…rs

Criado 18 de fevereiro de 2010
Ultima resposta 19 de fev. de 2010
Respostas 4
Participantes 2