Como definir uma PK apontando para uma classe encapsulada...?

Boa tarde, gostaria de saber se alguem já passou por essa situacao, e se sim me dar uma dica
referente a como definir atraves de annotations uma PK apontando para um atributo de um objeto encapsulado.

A classe para vcs entenderem melhor:

@Entity
@Table(name="FUNCIONARIO")
public class Funcionario {
	
	@Column
	private String funcao;
	@Column
	private GregorianCalendar dataContratacao;
	@Column
	private GregorianCalendar dataSaida;
	
        //Aqui que está a minha dúvida, a classe Pessoa possui um atributo id que tb é chave dela, 
        //então eu preciso que a PK de Funcionario aponte para o id de Pessoa.

	@OneToOne(targetEntity=Pessoa.class, cascade = CascadeType.ALL)
	private Pessoa pessoa;
	
	public Funcionario() {
	}

	/*********************
	 ****** GETTERS ******
	 ********************/
	public String getFuncao() {
		return funcao;
	}

	public GregorianCalendar getDataContratacao() {
		return dataContratacao;
	}

	public GregorianCalendar getDataSaida() {
		return dataSaida;
	}

	
	public Pessoa getPessoa() {
		return pessoa;
	}

	
	/*********************
	 ****** SETTERS ******
	 ********************/
	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public void setDataContratacao(GregorianCalendar dataContratacao) {
		this.dataContratacao = dataContratacao;
	}
	
	public void setDataSaida(GregorianCalendar dataSaida) {
		this.dataSaida = dataSaida;
	}
	
	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}