JPA - Set que referencia chave composta de três campos  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
spranta
JavaEvangelist
[Avatar]

Membro desde: 19/01/2004 17:32:48
Mensagens: 305
Localização: Belo Horizonte
Offline

Pessoal, estou utilizando JPA em um projeto daqui, quando tenho uma classe (Turma por exemplo) que faz um relacionamento com uma outra tabela de 'n para n', ou seja, tenho uma associação de chave composto dupla então costumo fazer o seguinte no meu POJO de Turma:


Desta forma, no meu POJO de Turma eu consiguo buscar todos os MATERIAIS associados a ela.

Isto funciona perfeitamente, no entanto, minha necessidade agora está em fazer um relacionamento de turma com uma outra tabela associativa que já possui uma chave composta dupla, gerando portanto uma chave composta com tres chaves primarias (todas elas foreing key), ou seja, de um lado eu tenho minha tabela de Turma com sua chave primaria, de outro lado eu tenho um tabela associativa que reune as chaves de Disciplina e Professor (atraves desta tabela eu consiguo saber para quais disciplinas o professor leciona), e dai eu preciso de ter uma Tabela de relacionamento composta por tres chaves primarias, pois eu preciso saber em uma data turma quais professores dão aula, mas para qual disciplina, entenderam?
Resumindo, preciso em Turma referenciar via JPA uma tabela associativa cuja chave composta possui tres campos, como faço isso?



"Não somos apenas ignorantes. Somos ignorantes sobre o quão ignorantes somos."
(Charles Darwin)
AvilaCS
Thread.start()
[Avatar]

Membro desde: 03/02/2007 18:28:12
Mensagens: 43
Localização: São Paulo
Offline

Veja o exemplo:



____________________________________
Jossemar Ávila de Morais
jossemar.avila@siriussoftware.com.br

Sírius Software
Visite: www.siriussoftware.com.br

Insista, persista e nunca desista pois um dia você conquista.
[WWW]
frazzato
Thread.start()

Membro desde: 23/08/2007 09:28:41
Mensagens: 44
Localização: São José do Rio Preto
Offline

Tipo se você relacionar a Turma com a Disciplina não fica mais facil depois a implementação, porque a partir dessa tabela onde você vai ter a chave composta(Turma, Disciplina) você chega ate Disciplinas e ate o/s Professores que ministram ela... é só uma sugestão

This message was edited 1 time. Last update was at 08/11/2007 09:01:21

spranta
JavaEvangelist
[Avatar]

Membro desde: 19/01/2004 17:32:48
Mensagens: 305
Localização: Belo Horizonte
Offline

Frazzato, o problema é que a disciplina pode estar associada a varios professores, ou seja, um professor está apto a coordenar varias disciplinas (relacionamento n x n), dai que uma turma pode ter varios professores, cada um para uma disciplina (n x n), só que eu preciso saber para cada disciplina qual o professor selecionado, visto que em uma dada disciplina eu tenho varios professores a disposição, ou seja, eu preciso dai ter uma tabela com chave composta do id da Turma, da Disciplina e do Professor. Ao meu ver, eu preciso criar uma classe que represente este relacionamento né, ou será possivel representar isso em JPA através de um Set sem criar uma classe, essa é ainda a minha dúvida?
A sugestão do Avila ao meu ver não me atende, visto que a Cidade que ele representou não é uma tabela de relacionamento entre entidades, mas sim uma entidade de dominio mesmo.

"Não somos apenas ignorantes. Somos ignorantes sobre o quão ignorantes somos."
(Charles Darwin)
Ricardo Moura
JavaChild

Membro desde: 23/04/2004 11:56:16
Mensagens: 125
Offline

Pessoal, o eu e o Spranta trabalhamos juntos e ainda não tivemos sucesso na implementação de chave composta com Foreign Key.

Achei um artigo dando um exemplo e "na teoria" parece funcionar, mas a "lei de murf" insiste em prevalecer!!
O erro que está ocorrendo agora é daqueles "fatos inexplicáveis da vida de um programador":

Unknown column 'disciplina_co_seq_disciplina' in 'field list'

O Hibernate deveria montar: disciplina.co_seq_disciplina . Alguém já passou por isso? Como isso pode ocorrer?

Algum filho de DEUS poderia nos ajudar!!

Segue abaixo a nossa implementação:









alves.Felipe
GUJ Ranger
[Avatar]

Membro desde: 21/01/2008 13:45:56
Mensagens: 766
Localização: Curitiba - Pr
Offline

Conseguiram resolver isso??
se conseguiram, deem umas dicas ai... estou na mesma situação...

abraco

Felipe Alves
[Email]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team