Como fazer join entre tabelas com chave composta

Alguém sabe como mapear uma tabela com annotations sem usar todos os campos da chave composta?

tenho duas classes:
LogEmbalagem

@Entity
@Table(name = "log_atual", uniqueConstraints = @UniqueConstraint(columnNames = {
		"Codigo", "serie" }))
public class LogEmbalagem implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3074778118998576550L;

	@Column(name = "REG")
	private int id;
	@Id
	@Column(name = "Codigo")
	private String op;
	@Id
	@Column(name = "Serie")
	private int serie;
	@Column(name = "Data_hora")
	private Date data;
	@Column(name = "COA")
	private String coa;
	@Column(name = "Leitura1")
	private String patrimonio;
	private String maquina;
	@Column(name = "usuario")
	private String funcional;

	@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER)
	@JoinColumn(name = "Codigo", insertable = false, updatable = false)
	private OrdemDeProducao ordemDeProducao;

	@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER)
	@JoinColumn(name = "usuario", insertable = false, updatable = false)
	private Funcionario funcionario;

	@OneToMany(fetch = FetchType.LAZY)
	@JoinColumns(value={
			@JoinColumn(name = "Codigo", referencedColumnName = "codigo"),
			@JoinColumn(name = "serie", referencedColumnName = "serie")})
	
	private Set<ComponenteLido> componentes;

	...

}

e a ComponenteLido:

[code]

@Entity
@Table(name = “log_itens_coletados”)
public class ComponenteLido implements Serializable {
/**
*
*/
private static final long serialVersionUID = 4562433496460554761L;
@EmbeddedId
ComponenteLidoPK id;

@Column(name = "texto_lido")
private String codigoDeBarras;


}[/code]
Pk da ComponenteLido

public class ComponenteLidoPK implements Serializable { @AttributeOverrides(value=@AttributeOverride(name="ordem",column=@Column(name="codigo"))) /** * */ private static final long serialVersionUID = 6185666670301225757L; private String ordem; private int serie; @Column(name="codigo_item") private String codigoComponente; ... }

Estou tentando fazer um join somente com os campos op e serie da classe LogEmbalagem com os campos ordem e serie da classe CompodenteLido(ComponenteLidoPK).
Porém a classe LogEmbalagem possui a PK reg e a classe CompodenteLido possui como PK os campos :codigo,serie,codigo_item.
o código acima retorna o erro:
Provided id of the wrong type for class embalagem.model.LogEmbalagem. Expected: class embalagem.model.LogEmbalagem, got class java.lang.Integer

Alguém sabe o que há de errado com o código?

Grato,