Chave primaria composta com foreink + Hibernate Annotations

Ola caros amigos, estou com um problema no meu mapeamento com Hibernate Annotations e JPA de chave primaria composta, queria que a tabela gerada pelo export schema do hibernate gerasse a seguinte tabela:

create table TB_RASTJOIN (
        ID_RASTJOIN int4 not null,
        VERSION_RASTJOIN int8,
        ID_CBA int4 not null,
        ID_VEICULO int4 not null,
        ID_EMPRESA int4 not null,
        ID_MOTORISTA int4 not null,
        primary key (ID_RASTJOIN, ID_CBA, ID_EMPRESA, ID_MOTORISTA, ID_VEICULO)
        /* ... constraints foreing key ...*/
    );

mas ele esta gerando assim:

create table TB_RASTJOIN (
        ID_RASTJOIN int4 not null,
        VERSION_RASTJOIN int8,
        ID_CBA int4 not null,
        ID_VEICULO int4 not null,
        ID_EMPRESA int4 not null,
        ID_MOTORISTA int4 not null,
        primary key (ID_CBA, ID_EMPRESA, ID_MOTORISTA, ID_VEICULO)
        /* ... constraints foreing key ...*/
    );

Observem que a coluna ID_RASTJOIN não esta sendo gerada como chave primaria composta, abaixo segue o código da classe mapeada:


@Entity
@Table(name = "TB_RASTJOIN")
public class RastJoinVO {

	@Embeddable
	static class CompositeKey implements Serializable {

		private static final long serialVersionUID = 1L;
		
                @Id    /* se eu tirar essa annotations é lançado um nul pointer */
		@SequenceGenerator(name = "SEQ_ID_TB_RASTJOIN", sequenceName = "SEQ_ID_TB_RASTJOIN")
		@GeneratedValue(generator = "SEQ_ID_TB_RASTJOIN", strategy = GenerationType.AUTO)
		@Column(name = "ID_RASTJOIN")
		private int id;

		@OneToOne(fetch = FetchType.LAZY, targetEntity = br.com.autweb.vo.cba.CbaVO.class)
		@JoinColumn(name = "ID_CBA", nullable = false)
		@ForeignKey(name = "ID_CBA_TB_RASTJOIN_FK")
		private CbaVO cbaVO;

		@OneToOne(fetch = FetchType.LAZY, targetEntity = br.com.autweb.vo.empresa.EmpresaVO.class)
		@JoinColumn(name = "ID_EMPRESA", nullable = false)
		@ForeignKey(name = "ID_EMPRESA_TB_RASTJOIN_FK")
		private EmpresaVO empresaVO;

		@OneToOne(fetch = FetchType.LAZY, targetEntity = br.com.autweb.vo.veiculo.VeiculoVO.class)
		@JoinColumn(name = "ID_VEICULO", nullable = false)
		@ForeignKey(name = "ID_VEICULO_TB_RASTJOIN_FK")
		private VeiculoVO veiculoVO;

		@OneToOne(fetch = FetchType.LAZY, targetEntity = br.com.autweb.vo.motorista.MotoristaVO.class)
		@JoinColumn(name = "ID_MOTORISTA", nullable = false)
		@ForeignKey(name = "ID_MOTORISTA_TB_RASTJOIN_FK")
		private MotoristaVO motoristaVO;

		/* ... construtores / gett / set ... */

	}

	/**
	 * Chave composta primaria
	 */
	@EmbeddedId
	private CompositeKey compositeKey;

	/**
	 * Controle de concorrência do objeto persistente.
	 */
	@Version
	@Column(name = "VERSION_RASTJOIN")
	private long version;

	/* ... construtores / gett / set ... */

}

Quem puder me ajudar, desde já muito obrigado.