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