Opa, beleza? estou com uma duvida na minha tabela. Por exemplo eu penso da seguinte maneira... Uma venda pode ter um funcionario, e uma venda pode ter um cliente, e uma venda pode ter varios produtos. Então eu tenho.
@Entity
@SuppressWarnings("serial")
public class Venda implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codigo;
private Double valorTotal;
@Temporal(TemporalType.DATE)
private Calendar dataVenda = Calendar.getInstance();
@OneToOne
@JoinColumn(name = "funcionario_codigo")
private Funcionario funcionario = new Funcionario();
@OneToOne
@JoinColumn(name = "clinte_codigo")
private Cliente cliente = new Cliente();
@OneToMany(mappedBy = "venda")
private List<Produto> produtos = new ArrayList<Produto>();
E depois com a relação oneToMany tenho que ter um atributo na minha tabela produto correto?
@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();
@ManyToOne
@JoinColumn(name = "marca_codigo")
private Marca marca = new Marca();
@ManyToOne
@JoinColumn(name = "venda_codigo")
private Venda venda = new Venda();
Mais aqui vem minha duvida, se eu fizer desse jeito toda hora que eu cadastrar um produto o hibernate vai reclamar por causa da fk da venda no meu produto correto? Está correto dessa maneira? Pois pensando agora acho que está muito mais muito errado!!