Bom dia,
continuando meus estudos sobre o hibernate me deparei com um novo problema.
Possuo no BD (Firebird) a tabela CabInventario e ItensInventario.
A chave primaria da tabela CabInventario e composta pelo codigo da empresa e pela data do inventario.
A chave primaria da tabela ItensInventario e composta pelo codigo da empresa, pela data do inventario, deposito e codigo do produto.
pesquisei e vi que para criar uma chave composta é necessario criar uma classe @Embeddable. Até ai tudo bem. O problema porem é que ao executar o teste recebo o seguinte erro:
not mapped to a single property
Eis o codigo da minha classe Cabinventario.
@Entity @Table(name = “CabInventario”) @XmlRootElement public class CabInventario implements Serializable {private static final
long serialVersionUID = 1L;@EmbeddedId private PKCabInventario getid; @Column(name = “desc_inv”) private String descricao; @ManyToOne @JoinColumn(name = “codemp”, insertable = false, updatable = false, nullable = false) private Empresa empresainv; @ManyToOne @JoinColumns({ @JoinColumn(name = “codemp”, referencedColumnName = “codemp”, nullable = false, updatable = false, insertable = false), @JoinColumn(name = "data, referencedColumnName = “data”, nullable = false, updatable = false, insertable = false) })private ItensInventario itensinv;
//gets e setts@Embeddable
public static class PKCabInventario implements Serializable {private static final long serialVersionUID = 1L; @Column(name = "codemp", nullable = false) private String empresainv; @Column(name = "data", nullable = false) private Date datainv; //gets e setts}
Logo depois criei a minha classe ItensInventario:
@Entity @XmlRootElement @Table(name = “itensinventario”) public class IInventario implements Serializable {private static final
long serialVersionUID = 1L;@EmbeddedId private PKItensInvent getid; @Column(name = “qtde”, nullable = false) private BigDecimal qtdeinvt; @OneToMany private transient CabInventario cabinv;//gets e setss@Embeddable
public static class PKItensInvent implements Serializable {private static final long serialVersionUID = 1L; @Column(name = "codemp", nullable = false) private String codemp; @Column(name = "data", nullable = false) private Date data; @Column(name = "coddep", nullable = false) private String coddepositoitensinvent; @Column(name = "codprod", nullable = false) private String codproditensinvet; //gets e setts}
Será que alguém pode me explicar o motivo desse erro?
referencedColumnNames(codemp, data) not mapped to a single property