Problemas com entidades estendidas no hibernate

Olá pessoal, estou com um problema. tenho uma entidade “pessoa” que possuis três listas de outras entidades: (endereços, contatos e referências) até ai tudo certo. O problema é que alterei o código pois referência poderia herdar contato, pois possui os mesmos atributos, mas ao fazer a alteração quando consulto a pessoa vem na tabela referência o contato também e ao contrário também. Poderiam me ajudar nesta questão? Desde já agradeço a ajuda. Obrigado.

Não entendi o que você quer fazer, pelo que entendi não tem nada de errado com o hibernate e sim com a maneira que você modelou as classes. Existem alguns pontos.

A classe referência estende contato? Caso seja dessa forma isso vai acontecer mesmo, pq para o hibernate a tabela para os dois é a mesma. Para fazer esse tipo de relacionamento com superclasse você tem quer usar anotações especificas para classificar as classes filhas DiscriminatorClass, DiscrminatorColumn e DiscriminatorValue.

Caso você não queria que essas classes se relacionem e entenda que uma não tem nada a ver com a outra a não ser os nomes dos campos, escreva a classe por completo, é bem mesmo trabalhoso que mudar a estrutura do código e apagar as tabelas para usar o discriminator.

1 curtida

Pessoal resolvido. O problema estava no fato de eu estar usando a classe pai. resolvi criando uma classe abstrata contato e estendi duas: contatoPessoa e referenciaPessoa ai funcionou certinho.

Obrigado pela resposta @Villagram