Hibernate annotations+ejb3

Pessoal… desculpem se a pergunta for muito tola mas estou comecando a entender a usar o hibernate 3 com o ejb3 agora.
Bem estou criando minhas classes e mapeandoa-as no banco tranquilamente usando o annotations:

@Entity
public class Despesa {
@Id
@Column(name = “cod”)
private String codigo;

@Column(name = “tx_cod_proj”)
private String codProjeto;

@Column(name = “tx_desc_proj”)
private String descricaoProjeto;

@Column(name = “tx_cod_desp”)
private String codDespesa;

@Column(name = “tx_desc_desp”)
private String descricaoDespesa;

@Column(name = “nu_baseln_ini”)
private double baselineInicial;

@Column(name = “nu_baseln_ant”)
private double baselineAnterior;

@Column(name = “nu_baseln”)
private double baseline;

@Column(name = “nu_desp_estm”)
private double despesaEstimado;

@Column(name = “nu_desp_atu”)
private double despesaAtual;

@Column(name = “dt_data”)
private Date data;

Porem gostaria de criar uma chave primaria composta que neste caso seria cod,codDespesa e data porem nao sei nem achei como faco isso pois quando defino o @Id para os atributos citados ele nao trata os 3 cod,codDespesa e data como sendo uma chave composta e sim analisa cada um como sendo um id separado…
sera q fui claro?

no final o codigo ficou assim:

@Entity
public class Despesa {
@Id
@Column(name = “cod”)
private String codigo;

@Id
@Column(name = “tx_cod_proj”)
private String codProjeto;

@Column(name = “tx_desc_proj”)
private String descricaoProjeto;

@Column(name = “tx_cod_desp”)
private String codDespesa;

@Column(name = “tx_desc_desp”)
private String descricaoDespesa;

@Column(name = “nu_baseln_ini”)
private double baselineInicial;

@Column(name = “nu_baseln_ant”)
private double baselineAnterior;

@Column(name = “nu_baseln”)
private double baseline;

@Column(name = “nu_desp_estm”)
private double despesaEstimado;

@Column(name = “nu_desp_atu”)
private double despesaAtual;

@Id
@Column(name = “dt_data”)
private Date data;

e como falei ele nao trata essas 3 colunas como chaves compostas