Opa beleza no meu sistema to fazendo um controle de venda por exemplo compra venda um controle doque gasto em comprar doque venda correto? Então na minha classe produto;
@Entity
@SuppressWarnings("serial")
public class Produto implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codigo;
private String nome;
private Integer quantidade;
private Double preco;
@ManyToOne
@JoinColumn(name = "fornecedor_codigo")
private Fornecedor fornecedor = new Fornecedor();
@OneToOne
@JoinColumn(name = "marca_codigo")
private Marca marca = new Marca();
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Integer getQuantidade() {
return quantidade;
}
public void setQuantidade(Integer quantidade) {
this.quantidade = quantidade;
}
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
public Fornecedor getFornecedor() {
return fornecedor;
}
public void setFornecedor(Fornecedor fornecedor) {
this.fornecedor = fornecedor;
}
public Marca getMarca() {
return marca;
}
public void setMarca(Marca marca) {
this.marca = marca;
}
}
até aqui tudo bem agora queria fazer uma tabela de compra, que seria o produto comprado com a quantidade pedido, e depois queria mostrar a data essas coisas, então fiz minha tabela Compra;
@SuppressWarnings("serial")
@Entity
public class Compra implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codido;
private Double precoTotal;
private Calendar Data = Calendar.getInstance();
@OneToMany
@JoinColumn(name = "produto_codigo")
private List<Produto> produtos = new ArrayList<Produto>();
public Long getCodido() {
return codido;
}
public void setCodido(Long codido) {
this.codido = codido;
}
public Double getPrecoTotal() {
return precoTotal;
}
public void setPrecoTotal(Double precoTotal) {
this.precoTotal = precoTotal;
}
public Calendar getData() {
return Data;
}
public void setData(Calendar data) {
Data = data;
}
public List<Produto> getProdutos() {
return produtos;
}
public void setProdutos(List<Produto> produtos) {
this.produtos = produtos;
}
}
Ok minha compra pode ter varios produtos. Então aqui vem minha duvida, não queria fazer a fk na minha tabela de produto correto? porque não queria que tivesse uma fk dentro do meu produto de compras não faz sentido, eu queria que na minha compra tivesse a fk de produtos tendeu? Como fazer do jeito certo, porque fiz dessa maneira e na minha tabela de compra não tem nenhum relacionamento com produto :( ou está correto assim mesmo?