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.
<class name="Person">
<id name="id" column="personId">
<generator class="native"/>
</id>
<set name="addresses" table="PersonAddress">
<key column="personId"/>
<many-to-many column="addressId"
class="Address"/>
</set>
</class>
<class name="Address">
<id name="id" column="addressId">
<generator class="native"/>
</id>
<set name="people" inverse="true" table="PersonAddress">
<key column="addressId"/>
<many-to-many column="personId"
class="Person"/>
</set>
</class>
Que vão para essas tabelas também segundo o Reference:
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, adressId)
create table Address ( addressId bigint not null primary key )
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.