JAVA @JOINCOLUMN problemas

Gente, estou com um problema, tenho está classe com @JoinColumn em product e buy:

s

E quando tento salvar qualquer coisa no banco de dados aparece este erro:

The @JoinColumns on the annotated element [field product] from the entity class [class Model.ItemBuy] is incomplete. When the source entity class uses a composite primary key, a @JoinColumn must be specified for each join column using the @JoinColumns. Both the name and the referencedColumnName elements must be specified in each such @JoinColumn.

O que devo fazer?

Acredito que você não poderia usar os mesmos atributos como @Id e @ManyToOne, deveria utilizar atributos separados para que o @IdClass funcione corretamente.

Exemplo:

@Id       
@Column(name = "produto_id")
private Integer productId;

@ManyToOne
@JoinColumn(name = "produto_id", insertable = false, updatable = false)
private Product product;

O mesmo formato se repetiria para Buy!

Como não vi sua classe ItemBuyId não sei como estruturou a mesma, mas lá deveria conter os dois atributos no formato Integer como no exemplo acima e a classe também tem que estar implementando Serializable.

Esse seria o formato de mapeamento de chave composta que já utilizei.

Minha classe Compra:

Minha classe ItemCompra:

Minha classe ItemCompraID:

Meu banco de dados:

Na minha classe ItemCompra (ItemBuy), eu não coloquei um @ID, usei chave composta (1,1), ou seja, Produto e Compra.
O que esta de errado nesse mapeamento? Porque está dando este erro?