Mapeamento de herança com Hibernate  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
brunocosta
Debugger
[Avatar]

Membro desde: 03/04/2005 23:46:57
Mensagens: 70
Offline

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

Bruno Costa
SCJP 6
SCWCD 5
SCBCD 5

http://brunocosta.com
[Email] [WWW] [MSN]
lcmetzger
Debugger
[Avatar]

Membro desde: 11/09/2003 11:52:54
Mensagens: 69
Offline


@hibernate.joined-subclass
name="Empresa"
table="TB_EMPRESA"
@hibernate.joined-subclass-key
column="ID"


É por ai o caminho...


Luiz Carlos Metzger

Veni, vidi, vice (cheguei, vi, venci)
brunocosta
Debugger
[Avatar]

Membro desde: 03/04/2005 23:46:57
Mensagens: 70
Offline

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...

Bruno Costa
SCJP 6
SCWCD 5
SCBCD 5

http://brunocosta.com
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team