JPA: String como primary key + Herança

4 respostas
finotti

Estou usando JPA (EclipseLink) e preciso de uma ajuda no mapeamento/relacionamento das entidades.
O banco de dados usado é Postgres.

Tem uma tabela Pessoa cuja chave primária é CPF. Essa tabela não possui ID (sequence).
Tem algumas tabelas filhas de Pessoa (Aluno, Professor, etc). Essas tabelas tem ID (sequence).
Qual a melhor forma de mapear esse relacionamento?

PS: o bd já está pronto e não pode ser alterado.

[]'s

4 Respostas

georgesq

oxente, não entendi, a Pessoa que é sua super classe tem PK CPF e as que extend ela tem outra chave, isso não vai funcionar. Pessoa deveria ter o CPF como unique index, pois Pessoa não é a entidade real…

[s]

finotti

george, infelizmente não posso alterar o banco.
Sei que essa não é a melhor opção. Na verdade, nem sei se vai funcionar.

R

As tabelas filhas “(Aluno, Professor, etc)” tem a coluna CPF referenciada na tabela pai (Pessoa) ?
Se sim, você pode utilizar um relacionamento OneToOne.

finotti

Consegui convencer o usuário a retirar a sequence e incluir o CPF nas tabelas filhas.
Então vai ficar assim:

Classe Pessoa
PK (cpf)

Classes filhas
FK (cpf)

Criado 3 de março de 2011
Ultima resposta 3 de mar. de 2011
Respostas 4
Participantes 3