Mapeamento de herança com Hibernate

2 respostas
brunocosta

Olá,

Tenho a seguinte hierarquia de classes:

Pessoa <- Empresa
Pessoa <- Vendedor

Para mapeá-las com o Hibernate usei a estratégia de tabela por subclasse.
Um registro da tabela Pessoa pode representar (ao mesmo tempo) uma Empresa e um Vendedor.

O problema é que o Hibernate não está conseguindo inserir um Vendedor quando já existe uma Empresa com aquele ID e vice-versa. Existe alguma maneira para que o Hibernate reuse o mesmo registro (ID) da tabela Pessoa nas duas subclasses?

Obrigado

2 Respostas

lcmetzger

É por ai o caminho…

:slight_smile:

brunocosta

Valeu pela resposta cara, mas eu já mapeei as classes, tudo funciona bem quando eu insiro uma Empresa ou um Vendedor sem que estes compartilhem do mesmo registro na tabela Pessoa. Só que eu relaciono várias coisas com Pessoa (coleções de telefones, endereços, cartões de crédito e etc), e estes dados seriam os mesmos para Vendedores ou Empresas…
pra isso eu preciso que o Vendedor e a Empresa “usem” o mesmo ID da tabela Pessoa…
O hibernate consegue inserir e carregar normalmente quando a Empresa e o Vendedor não compartilham do mesmo registro em Pessoas, e consegue carregar normalmente um Vendedor ou uma Empresa mesmo que eles compartilhem o mesmo registro da tabela Pessoa (para os que ja estão cadastrados), só que quando eu tento inserir um novo Vendedor (por exemplo) quando já existe um Empresa cadastrada o hibernate gera um INSERT pras duas tabelas (e não só pra Vendedor) e como o registro na tabela Pessoa já existe ele dá erro…

Criado 3 de abril de 2005
Ultima resposta 5 de abr. de 2005
Respostas 2
Participantes 2