Chave composta Hibernate

Pessoal boa tarde, a minha dúvida é: tenho uma classe Empresa, Pessoa e Funcionario. A chave primária de Pessoa é composta (Empresa, Id) até ai blz, o problema está sendo em criar a chave composta de Funcionario que tem que ser (Empresa, Id) só que esse Id tem quer ser uma Fk de Pessoa.

Classe Empresa

@Entity
public class Empresa {
  @Id @GeneratedValue
  private Integer	empresa;
               
  set/get
}

Classe Pessoa

@Entity
public class Pessoa implements Serializable{
  @EmbeddedId
  private PessoaId	pessoaId;
            
  set/get
}

Classe PessoaId que é a chave composta de Pessoa

@Embeddable
public class PessoaId implements Serializable{
	
  @ManyToOne
  @JoinColumn(name="empresa")
  @ForeignKey(name="empresa_fk")
  private Empresa empresa;
	
  private Integer pessoa;

  set/get
}

Eu preciso que a chave de Funcionário seja a mesma de Pessoa, tipo:

---------pessoa-------------                            
emp        pessoa       Nome                           
1             1          João                             
1             2          Teste                            

-----------Funcionario--------------
emp        Pessoa             Cargo
1             1               Analista  
1             2               Programador
@Embeddable
public class FuncionarioId implements Serializable{
	
  @ManyToOne
  @JoinColumn(name="empresa")
  @ForeignKey(name="empresa_fk")
  private Empresa empresa;

  //Como que ficaria a anotação do Id do Funcionario ligado ao Id de pessoa?
}