Olá Galera, estou com dificuldade em relacionar Produto e Venda. Pretendo relacionar @ManyToMany unidirecional. Onde uma venda pode possuir muitos produtos e muitos produtos podem estar em uma só venda. Porem Produto não precisa saber em qual venda ele esta.
Até agora tenho as classes Venda e Produto dessa forma:
@Entity
public class Produto {
@Id
@SequenceGenerator(name = "PRODUTO_SEQ", sequenceName = "PRODUTOSEQ", initialValue = 1, allocationSize = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "PRODUTO_SEQ")
public int id;
@Column(nullable = false)
public String titulo;
@Column(nullable = false)
public String sku;
@Column(nullable = false)
public double preco;
@Column(nullable = false)
public int estoque;
public String descricao;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getSku() {
return sku;
}
public void setSku(String sku) {
this.sku = sku;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getEstoque() {
return estoque;
}
public void setEstoque(int estoque) {
this.estoque = estoque;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
E minha classe Venda dessa maneira:
@Entity
public class Venda {
@Id
@SequenceGenerator(name = "VENDA_SEQ", sequenceName = "VENDASEQ", initialValue = 1, allocationSize = 1)
@GeneratedValue(strategy = GenerationType.AUTO, generator = "VENDA_SEQ")
public int id;
@ManyToMany(mappedBy = "Produto", targetEntity = Produto.class)
@JoinTable(name = "produtos_da_venda", joinColumns = { @JoinColumn(name = "id_produto") }, inverseJoinColumns = {
@JoinColumn(name = "id_venda") })
public List<Produto> produto;
@OneToOne
@JoinColumn(name = "id_cliente", nullable = false)
public Cliente cliente;
public double desconto;
public double acrescimo;
@Column(nullable = false)
public double total;
@Column(name = "data", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
public Date data;
public String status;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public List<Produto> getProduto() {
return produto;
}
public void setProduto(List<Produto> produto) {
this.produto = produto;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public double getDesconto() {
return desconto;
}
public void setDesconto(double desconto) {
this.desconto = desconto;
}
public double getAcrescimo() {
return acrescimo;
}
public void setAcrescimo(double acrescimo) {
this.acrescimo = acrescimo;
}
public double getTotal() {
return total;
}
public void setTotal(double total) {
this.total = total;
}
public Date getData() {
return data;
}
public void setData(Date data) {
this.data = data;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
Alguem poderia me auxiliar por gentileza?
O Erro é: mappedBy reference an unknown target entity property: br.com.cadastrocliente.entidade.Produto.produto in br.com.cadastrocliente.entidade.Venda.produto