Hibernate: Mapear uma classe que possui duas classes pai

4 respostas
S

Olá pessoal.

É possível, com o uso do hibernate, mapear uma classe que possua duas classes pai?

Como no exemplo em anexo.
A tabela Pessoa pode ser ou uma Pessoa Física ou uma Pessoa Jurídica.

Obrigado pela Ajuda.
Sidney.

4 Respostas

Fernando_Generoso_da

Sidney,

Primeiro, ninguém tem dois pais, nem mesmo classes. Alguém pode ser várias coisas, assim como classe, implementar várias interfaces, mas pai, só um mesmo.

Segundo, é possivel sim mapear uma classe com herança. Dá uma procurada no google por @inheritance.

Terceiro, seu mapeamento está errado. Pessoa Física e jurídica, extendem Pessoa. Agora dependendo de como voce quer implementar, Fornecedor se for pessoa jurídica, pode ter como classe pai Pessoa Jurídica, e Cliente, se for pessoa física, pode ter como pai, Pessoa Física. Vai depender de como voce quer modelar. Uma outra forma também é fornecedor e cliente conter alguma das duas classes(Pessoa Física e Pessoa Jurídica).

att

Fernando Rosa

S

Então Fernando.

Sei que é estrnanho dois pais. Também pensei numa maneira de usar interfaces, mas ia ficar inviável.
Perguntei isso porquê ouvi dizer que existem linguagens em que é possível extender mais de uma Classe.

Mas…
No meu caso, tanto o Fornecedor como o Cliente podem ser tanto PF como PJ.
Pensei em usar uma tabela só e diferenciar PF e PJ usando um atributo qq.

Você tem uma idéia de como posso fazer para modelar isso.

Valeu pela ajuda.

Fernando_Generoso_da

Sidney,

Para mapear Pessoa Física , Pessoa jurídica e pessoa é simples. Existem 2 formas: Tabelas diferentes ou tudo em uma tabela, definindo um TIPO para cada um. Se for fazer em JPA, procura na net q tem exemplos.
Quanto a mapear cliente e fornecedor aí é mais complicado. Talvez seja melhor a classe Cliente, conter um objeto do tipo pessoa. Aí dependendo, tu insere uma pessoa Física ou Jurídica correspondente. Não sei se é a melhor forma, mas é a que eu vislumbro no momento.

Fernando Rosa

S

Valeu pela dica fernando, vou dar uma olhada aqui prá vero que fica melhor.

Criado 22 de julho de 2008
Ultima resposta 23 de jul. de 2008
Respostas 4
Participantes 2