JPA e Hibernate - relacionamento com uma única chave da chave composta

10 respostas
M

Boa tarde pessoal, estou com a seguinte situação:

Tenho uma chave primária composta com 3 campos: ChavePK

esta chave é utilidada por 3 outras classes que se relacionam sem problema: ClasseA, ClasseB e ClasseC

meu problema é que tenho outra classe (ClasseD) que se relaciona apenas com um campo desta chave composta;

não consegui fazer este relacionamento: dizer para o jpa que a Classe D se relaciona apenas com um campo da chave composta da Classe A e não com todos os campos.

Alguem ja teve problema parecido?

Grato.

10 Respostas

cicerogomes

Amigo, tive um proplema parecido de uma classe q contia uma chave composta por 2 atributos, a qual a se relacionava apenas um de uma outra classe, e resolvi com o proprio assistente do Netbeans. Faz um teste e ver se vai te ajudar, crias tabelas e as entity apartir das suas tabelas. Isso caso vc use o Netbeans. Na verdade ele criou uma outra classe. Se alguem poder ajudar usando uma forma mais simples, ficarei grato tbem. t+

M

Opa, tentei fazer o mapeamento pelo netbeans mas ele trava buscando as chaves das tabelas … :frowning:

marcelo.bellissimo

Cara, manda os mapeamentos que você tá fazendo, e se possível a estrutura dessas tabelas que você está mapeando… tem alguma coisa errada ai… e aliás, esqueça do assistente do NetBeans, ele faz tudo errado mesmo… um lixo…

M

Opa, vejam um exemplo:

Tenho uma tebela com uma chave primária composta de 5 campos, mas somente dois destes se relacionam com outra tabela, e as vezes somente um.

Abraços

marcelo.bellissimo

Elas sempre vão existir pois fazem parte da PK… não existe PK composta com campos nulos…

A

Estou com o mesmo problema!

Vocês conseguiram resolver? Poderiam postar as classe?

marcelo.bellissimo

Faz tempo que resolvemos isso… não tenho as classes para mostrar, mas dê uma lida nas explicações que deve ajudar… qualquer dúvida, poste suas classes aí, e diga o que você está tentando fazer …

T

na verdade uma solução um pouco mais inteligente, é se possivel, colocar um identificador único para essa tabela, mais ainda, a própria equipe do hibernate desencoraja a utilizaçao de chaves compostas. Para garantir a integridade neste caso, vc poderia usar hibernate-validator ou constraints do banco de dados.

hvivox

Instala o hibernate tools do eclipse e faça o mapeamento!

J

Estou com o mesmo problema sera que poderia me ajudar.

Criado 28 de janeiro de 2010
Ultima resposta 12 de mai. de 2011
Respostas 10
Participantes 7