Hibernate e herança

2 respostas
J

Olá pessaol do forum…

Estou começando a usar o Hibernate agora e surgiu uma dúvida…

Tenho uma classe Aluno e uma classe Pessoa. Pessoa é a classe-pai e Aluno por sua vez herda seus atributos.

Quem eu devo marcar com @Entity (entidade do banco)?? Já que o banco
não possui uma tabela Pessoa mas sim uma tabela Aluno???
Devo apenas marcar na classe Pessoa seus atributos como colunas??? EX.:

protected String nome;
@Column(name = "nome")

Agradeço desde já a atenção!!!

Jonhzinho

2 Respostas

thiagotn

jonhzihnhoOo:
Olá pessaol do forum…

Estou começando a usar o Hibernate agora e surgiu uma dúvida…

Tenho uma classe Aluno e uma classe Pessoa. Pessoa é a classe-pai e Aluno por sua vez herda seus atributos.

Quem eu devo marcar com @Entity (entidade do banco)?? Já que o banco
não possui uma tabela Pessoa mas sim uma tabela Aluno???
Devo apenas marcar na classe Pessoa seus atributos como colunas??? EX.:

protected String nome;
@Column(name = "nome")

Agradeço desde já a atenção!!!

Jonhzinho

Se você deseja que Pessoa não seja uma entidade(tabela) no banco de dados, então a mesma não precisa estar anotada com @Entity.
Um exemplo:

@MappedSuperclass
public class Pessoa {
   @Column(name = "NOME")     
   private String nome;
   // getters e setters
}

@Entity 
public class Aluno extends Pessoa {
   @Column(name="RGM") 
   private Integer rgm;
    // getters e setters
}
Andre_Brito

Vale dar uma lida na documentação do Hibernate, porque existem vários jeitos de se fazer essa parte de herança. Aqui, geralmente uso 1 tabela por herança (Pessoa é uma tabela, que armazena usuários, alunos, professores e tal) e coloco @Entity em todas.

Criado 21 de dezembro de 2009
Ultima resposta 22 de dez. de 2009
Respostas 2
Participantes 3