Relacionamento N:N com atributos adicionais no Hibernate  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
febatata
JavaBaby
[Avatar]

Membro desde: 13/09/2006 15:17:49
Mensagens: 84
Localização: São Caetano do Sul - SP
Offline

Boa Noite pessoal.

Postei exatamente a mensagem abaixo no forum de Java Básico, porém um amigo deu a dica de postar aqui no Java Avançado. Por isso, segue o post.

Estou com problema com o Hibernate e gostaria de saber se algúem pode me ajudar.

Tenho um relacionamento de N:N entre as classes "Representada" e "Cliente".

Esse relacionamento eu consigo fazer seguindo o mesmo esquema do Hibernate Reference.



Que vão para essas tabelas também segundo o Reference:


Porém, tenho um problema que não consigo enxergar a solução.

Para cada representada que um cliente tenha vínculo, ele precisa de um outro atributo chamado IdRepresentada. Este atributo é o código que este determinado cliente possui na empresa Representada (Obs.: Esse código é fornecido pela representada quando passamos o cadastro do cliente para a mesma, e este cadastro é aprovado).

Então. Agora eu fico imaginando como será que eu consigo manter esta multiplicidade de códigos, já que além de uma representada ter várias clientes, e os clientes podem ter várias representadas, os códigos em 2 representadas com certeza sempre serão diferentes.

Acho que deu pra entender o meu problema. Desculpe a confusão, mas eu to meio zonzo aqui pensando em como resolver isso. Não tenho muita experiência com programação em Java e menos com Hibernate.

Se alguém puder me dar um helps, plz!

Obrigado por enquanto.

Felipe Z. Affonso - Batata
xgucax
JavaBaby
[Avatar]

Membro desde: 07/10/2006 09:06:36
Mensagens: 92
Offline

Olá cara, tudo bom?
Pelo que eu entendi seu problema é similar a um já visto aqui no fórum.
Muita gente diz que quando se obtém relacionamento N:N com atributos, alguma coisa está errada na modelagem. Não vejo dessa forma, pois cada lógica de negócio é um mundo e nesse âmbito de desenvolvimento, nada é objetivo.
Mas com relação à sua dúvida, o que todos sempre recomendam é a criação de uma classe que represente esse relacionamento N:N. Ou seja, uma classe chamada ClienteRepresentada (Apesar de no código que você colou ser PersonAddress) cuja chave primária seria uma chave composta. Essa classe poderia ter qualquer outro atributo, e se relacionaria com as classes Cliente e Representada através de relacionamento 1:N
Assim, vc estaria IMPLEMENTANDO aquela regra de Modelagem ER da primeira forma normal
Espero que tenha ficado claro e que tenha sido útil
Boa sorte
[]'s

Embrace and extend this _|_
<hr>
[MSN]
febatata
JavaBaby
[Avatar]

Membro desde: 13/09/2006 15:17:49
Mensagens: 84
Localização: São Caetano do Sul - SP
Offline

Obrigado xgucax

Era mais ou menos o que meus amigos tinham me falado, mas tem coisa que agente demora pra enxergar mesmo.

To começando agora a ter essa malícia que precisa pra resolver problemas mais complicados.

De qualquer forma, se mais alguém tiver alguma sugestão, será bem vinda, assim podemos ver que o mesmo problema pode ser resolvido de várias maneiras.

Até logo, e mais uma vez Obrigado.

Felipe Z. Affonso - Batata
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team