Mapear subclasse com hibernate

Fala galera… Seguinte estou com um probleminha aqui com o Hibernate.

Situação: Tenho uma classe pai (Pessoa), uma subclasse de Pessoa (Funcionário) e uma Docente que herda de funcionário, ou seja Funcionario herda de pessoa e docente herda de funcionário.

Porém não estou conseguindo cadastrar a classe Docente creio que seja pelo meu relacionamento, segue abaixo:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Pessoa implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    private String nome;
    private String sobreNome;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataNascimento;
    private String endereco;
    private String bairro;
    private String cep;
    private String telefoneFixo;
    private String telefoneCel;

//-------------------------------------------

@Entity
@PrimaryKeyJoinColumn(name = "idpessoa")
public class Funcionario extends Pessoa {
   
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataAdmissao;
    private Integer diaVencimento;
    private Integer privilegio;
    private Double valorSalario;
    private Integer status;
    private String cargo;
    private Integer permissoes;
    private String login;
    private String senha;

//--------------------------------------------------

@Entity
@PrimaryKeyJoinColumn(name="Id_Pessoa")
public class Docente extends Funcionario {

    private String cursoLeciona1;
    private String cursoLeciona2;

Está cadastrando dois Funcionário, o 1º com os dados normal e o segundo apenas com o FK da pessoa. Tentei criar um id para Funcionário mas da erro.

Dei uma pesquisada na internet porém não obtive mtu sucesso, agradeço desde já a ajuda!