JPA herança, usar mesmo id de classe pai para duas filhas

Tenho 3 classes:

@Entity
@Table(name = "PESSOA")
@Inheritance(strategy = InheritanceType.JOINED)
public class PessoaT extends BaseEntityT implements Serializable{
//atributos e metodos
}

@Entity
@Table(name = "FUNCIONARIO")
@PrimaryKeyJoinColumn(name = "ID_PESSOA")
public class FuncionarioT extends PessoaT implements Serializable {
//atributos e metodos
}

@Entity
@Table(name = "BENEFICIARIO")
@PrimaryKeyJoinColumn(name = "ID_PESSOA")
public class BeneficiarioT extends PessoaT implements Serializable {
//atributos e metodos
}

Com essas classes tenho um cenario onde um Funcionario tb é um beneficiario, só que não consigo usar o mesmo id de Pessoa para o beneficiario fazendo assim o um linha duplicada de pessoa para o Beneficiario.

Tabela

ID_PESSOA CPF NOME DTYPE
9 11465471430 FABIANA EMIDIO FERREIRA Funcionario
10 11465471430 FABIANA EMIDIO FERREIRA Beneficiario

Como resolver?

Me parece que o que está causando problema é na sua modelagem.

Pelo que disse:

Isso já invalida sua árvore de Beneficiario and Funcionario herdando de Pessoa. (Aliás,o que é esse T no nome das classes?)

Duas perguntas se aplicam aqui:

  • Sem contar getter/setter, um Funcionário tem métodos diferentes de um Beneficiario ou Pessoa?
  • Você quer armazenar informaçoes que sao únicas para Funcionário e outras que sao únicas para Beneficiários?

Se respondeu Nao para as duas: Pode adicionar uma lista de papeis direto na classe Pessoa

Sim para alguma: Crie classes específicas para cada (sem herança) e deixe um link entre elas (tipo, uma proprieadade Pessoa em Funcionario)

Opa,
O T é somente pq estou testando nada de +.
sim Funcionario tem atributos so dele e beneficiario tb.

vou fazer isso, colocar um atributo pessoa dentro de cada um deles.