Dentro de uma chave composta uma chave estranjeira?

boa noite
blz ae com vcs? espero q sim

estou desenvolvendo um sistema de ponto eletronico, e estou com problema
em fazer o mapeamento das entitade.

tenho duas entidades.

Pessoa e Ponto

Pessoa.class

[code]@Entity
public class Pessoa implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable=false)
private Long id;

@OneToMany(cascade=CascadeType.ALL,mappedBy = "pessoa")
private List<Ponto> pontos;

@OneToOne(cascade=CascadeType.ALL,mappedBy = "pessoa")
private Horario horario;

@Column(unique=true)
private String cpf;

@OneToOne(cascade=CascadeType.ALL,mappedBy="pessoa")
private Digital digital;

private String nome;
private String email;

@ManyToOne
private Departamento Departamento;

/** Creates a new instance of Pessoa */
public Pessoa() {
}

// gets ,sets , hashcode e equal omitidos
[/code]

A minha classe ponto, eu gostaria q tive os campos Pessoa, DatadoPonto e Turno como chaves, por isso criei uma chave composta.

Ponto.class

[code]
@Entity
public class Ponto implements Serializable {

@EmbeddedId
private PontoPK id;

private String justEntrada;
private String justSaida;

@Temporal(value = TemporalType.TIME)
private Date horaEntrada;
@Temporal(value = TemporalType.TIME)
private Date horaSaida;

@Temporal(value = TemporalType.TIME)
private Date totalHorasTrabalhas;

// gets ,sets , hashcode e equal omitidos
[/code]

PontoPK.class

[code]
@Embeddable
public class PontoPK implements java.io.Serializable {

@ManyToOne
@JoinColumn(nullable=false)
private Pessoa pessoa;
@Column(nullable=false)
private String turno;
@Temporal(value = TemporalType.DATE)
@Column(nullable=false)
private Date dataPonto;

/** Creates a new instance of PontoPK */
public PontoPK(Pessoa pessoa,Date dataPonto,String turno ) {
    this.setPessoa(pessoa);
    this.setDataPonto(dataPonto);
    this.setTurno(turno);
    
}
protected PontoPK() {
}

// gets ,sets , hashcode e equal omitidos[/code]

meu problema eh msm eu colocando a Pessoa como chave , qdo olho direto no banco, esse campo nao eh criado como chave. E por isso nao consigo inserir duas pessoas diferentes no msm dia e mesmo turno.

obs.: talvez alguem já tenha vista esse mesmo topic em outros foruns,
é q preciso de uma ajuda urgente e não consigo axar resposta pra esse probelma

aguardo alguma ajuda
grato