JPA - DiscriminatorValue

3 respostas
G

Boa dia Pessoal!
Tenho a seguinte estrutura de banco de dados.

table pessoa(
pessoa_id integer primary key,
nome varchar

funcionario char(1), //s ou n =&gt Sim ou Não
cliente char(1), //s ou n =&gt Sim ou Não
)

table funcionario(
funcionario_id integer primary key, //também chave estrangeira de pessoa

)

table cliente(
cliente_id integer primary key, //e também chave estrangeira de pessoa

)

Bem, meu problema eh o seguinte…
Terei que usar o "Inheritance(strategy=InheritanceType.JOINED)" mas não posso utilizar o
DiscriminatorValue, pois uma pessoa não tem "Descriminador" pq a tabela pessoa não tem nenhuma coluna que defina se o registro é de um funcionário ou de um cliente, isso porque o registro pode ser tanto um funcionário quanto um cliente.
Tive que usar SQL puro para resolvel esse problema, mas gostaria de não fazer isso.

3 Respostas

T

mas para usar essa estratégia de mapeamento de herança, vc precisa de um atributo descriminador sim. algo como TIPO_PESSOA. Não conheço outro jeito de utilizar essa estratégia em JPA sem usar o atributo desciminador.

G

Boa dia Tecnoage!
Eu não posso criar essa coluna “TIPO_PESSOA” ou algo parecido,
pq isso iria atrapalhar o funcionamento do sistema.
Por exemplo, que valor seria atribuido para esta coluna para uma pessoa
que é Cliente e Funcionário?
Teria alguma outra forma de herança ou outra forma de usar essa estrutura sem usar SQL? (JPA puro)?

G

Será q isso não eh possível?
Ou não está claro a minha pergunta?

Criado 7 de agosto de 2007
Ultima resposta 20 de ago. de 2007
Respostas 3
Participantes 2