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
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
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