ReferencedColumnNames not mapped to a single property

0 respostas
programaçãojavafront-endhibernate
L

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

Criado 7 de dezembro de 2017
Respostas 0
Participantes 1