JPA/Hibernate duvida qual anotação usar para classes com herança

1 resposta
P

Olá,

uma duvia como fazer as anotações para as classes abaixo
onde no banco de dados tenho três tabelas:

  • Pessoa
  • Fisica
  • Juridica

e o campo que sei que vai jogar na classe fisica é o campo tipo_pessoa
que indica se é fisica ou juridica ???

Não sei como fazer as anotações e como o JPA/Hibernate saberá que classe
vai alimentar fisica ou juridica para a pessoa seleciona ???

se alguém puder me ajudar …

abs

class Pessoa{

   private int id;
   private String nome;
   private String tipo_pessoa;  ///onde pode ser F - Fisica   ou J- Juridica

}



class Fisica extends Pessoa{

  private long id;
  private long nrCPF
  private long dataInscrição;
}

class Juridica extends Pessoa {

  private long id;
  private long nrCNPJ;
  private long dataInscrição;
}

1 Resposta

Javabuntu

na classe Pessoa:

@MappedSuperClass public class Pessoa{}

classes filhas:

@Inheritance(strategy= InheritanceType.TABLE_PER_CLASS)
public classe Fisica extends Pessoa{}

agora depende do seu modelo de dados, esse acima é pra 1 tabela por classe, ou seja, terá 3 tabelas, uma pra pessoa e uma pra cada filha.
Se usar uma única tabela no banco, que guarda dados das 3 entidades, o mapeamento já é diferente.

[EDIT] agora que vi sua informação de que é uma tabela por classe, então é essa configuração ai acima.[/EDIT]

flw Hewerton

Criado 22 de janeiro de 2009
Ultima resposta 22 de jan. de 2009
Respostas 1
Participantes 2