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,