Mapear dois beans para a mesma tabela

Olá, tenho o seguinte problema: Tenho no Banco de Dados uma Tabela Genérica Pessoa que pode cadastrar Alunos, Professores, Servidores, etc., assim sendo tenho a classe:

@Entity
@Table(name = "pessoa", schema = "rh")
@PrimaryKeyJoinColumn(name="id_pessoa")
public class Pessoa {
    @Id
    @Column(name="id_pessoa")
    private Integer idPessoa;

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


    // gets e sets

    // código omitido
}

Dessa forma eu devo ter outra classe nos seguintes termos:

public class Professor extends Pessoa {

}
public class Servidor extends Pessoa {

}

A questão é que todas essas entidades devem ser salvas na mesma tabela “pessoa”. Assim sendo, como eu devo mapear as classes Professor, Servidor etc.?

OBS: antes que alguém pergunte por que eu estou fazendo dessa maneira eu tenho que dizer que é porque me repassaram assim :frowning:

Agradeço qualquer ajuda.

Esse link é para Hibernate, mas, JPA tem os mesmos 3 tipos de mapeamento.
Dá uma olhada no mapeamento por discriminador de coluna…

http://docs.jboss.org/hibernate/orm/3.5/reference/pt-BR/html/inheritance.html

Olá jefferson,

Bom cara, mas pera, qnts colunas essa tabela vai ter?
Então cada vez que “aparecer” a necessidade de um atributo especifico para a entidade você vai colocar na tabela?

Professor possui 3 atributos que são só dele.
Aluno possui 3 atributos que são só dele.
Servidor possui 8 atributos que são só dele.

Além dos atributos padrão.

Acho melhor desenhar e modelar isso ai melhor, vc não acha? Perde tempo agora, mas ganha depois.

abss

Como eu disse isso não depende de mim, foi repassado pra ser assim :frowning:

Olá jefferson,

Eu li no primeiro post que te passaram assim, ate peço desculpas deveria ter comentado que eu tinha visto e que não estou falando que é culpa sua, o que eu quis dizer era para conversar com quem te passou sabe?

abss