Dúvida com hibernate annotation - designar em "qual tabela salvar" mas com herança

4 respostas
MrDataFlex

Pessoal tenho a situacao:

Pessoa


Cliente extends Pessoa


Funcionario extends Pessoa

Como eu poderia salvar, Cliente na tabela Cliente e Funcionario na tabela Funcionario?

Só consegui fazer funcionar isso, anotando a classe Pessoa com o @table … mas ai, todo mundo que herdar dela, vai pra mesma tablea… o que não parece correto!!!

alguém me da uma luz ?

4 Respostas

fiaux

Os dados herdados vao para a tabela/classe Pessoa e os atributos específicos da classe de especialização vao para a sua propria tabela. Voce precisa de duas tabelas, uma para cada classe.

jgbt

a luz.

[]´s

peerless

Você pode deixar suas classes “mãe” anotadas com: @MappedSuperclass, ai você, apenas designa as @Table´s em filhas transientes.

abç :wink:

fiaux

Não sabia dessa annotation de @MapedSuperclass. Eu aprendi a fazer isso usando @Inheritance. Nas classes filhas usar @PrimaryKeyJoinColumn e em todas as classes @Table.
Qual a diferença? É melhor fazer com qual?

Abraços.

Criado 2 de dezembro de 2007
Ultima resposta 4 de dez. de 2007
Respostas 4
Participantes 4