Boa tarde, estou com dificuldades em relacionamentos com JPA, tenho
as 3 classes a seguir:
//classe pedido
@Entity
public class Pedido {
@Id
private int codigoPed;
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = “PEDIDOPRODUTO”,
joinColumns = {@JoinColumn(name =“CODIGOPRO”,referencedColumnName=“CODIGOPRO”)},
inverseJoinColumns = {@JoinColumn(name =“CODIGOPED”,referencedColumnName=“CODIGOPED”)}
)
private List<Produto> produtos;
private int codigoCli;
}
//classe pedidoproduto utilizado para ligar os pedidos com os produtos
@Entity
public class PedidoProduto {
@Id
private int codigo;
@JoinColumns(@JoinColumn(name = "CODIGOPED",referencedColumnName="CODIGOPED"))
private Pedido pedido;
@JoinColumns(@JoinColumn(name = "CODIGOPRO",referencedColumnName="CODIGOPRO"))
private Produto produto;
private BigDecimal preco;
}
//classe produto
@Entity
public class Produto {
@Id
private int codigoPro;
private String descricao;
private BigDecimal preco;
}
//entao depois eu faço isso pra cadastrar um pedido
EntityTransaction t = em.getTransaction();
t.begin();
try {
Pedido ped1 = new Pedido();
ped1.setCodigoCli(1);
ped1.setCodigoPed(1);
ped1.setProdutos(new ArrayList<Produto>());
ped1.getProdutos().add(em.find(Produto.class, 1));
ped1.getProdutos().add(em.find(Produto.class, 2));
em.persist(ped1);
em.flush();
t.commit();
} catch (Exception e) {
e.printStackTrace();
t.rollback();
}
e me da o seguinte erro:
…INSERT INTO PEDIDO (CODIGOPED, CODIGOCLI) VALUES (?, ?)
bind => [1, 1]
[TopLink Warning]: 2007.07.10 07:12:14.546–UnitOfWork(19551658)–Thread(Thread[main,5,main])–Local Exception Stack:
Exception [TOPLINK-45] (Oracle TopLink Essentials - 9.1 (Build b25)): oracle.toplink.essentials.exceptions.DescriptorException
Exception Description: Missing mapping for field [PEDIDO.CODIGOPRO].
Descriptor: RelationalDescriptor(entity.Pedido --> [DatabaseTable(PEDIDO)])…