Relacionamento Venda com Item Venda
Bom tarde estou fazendo sistema de venda preciso, tirar duvida qual é melhor forma de relacionar duas tabela:
@Entity
@Table(name = "itemvenda")
public class ItemVenda implements Serializable, Comparable<ItemVenda> {
private static final long serialVersionUID = -6083937769807378921L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "Quantidade")
private Integer quantidade;
@Column(name = "ValorUnitario")
private Double valorUnitario;
@Column(name = "preco_total")
@NotNull
private Double precoTotal;
@Column(name = "data_venda")
private Date dataVenda;
@ManyToOne
@JoinColumn(name = "id_produto", nullable = false)
@NotNull
private Produto produto;
@ManyToOne
@JoinColumn(name = "id_venda", nullable = false)
@NotNull
private Venda venda;
public ItemVenda() {
}
}
@Entity
@Table(name = "venda")
public class Venda implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
private static final long serialVersionUID = 1L;
@Column(name = "dataVenda")
private Date dataVenda;
@Column(name = "Total")
private Double total;
@Column(name = "StatusVenda", length = 1)
private char statusVenda;
@ManyToOne
@JoinColumn(name = "id_vendedor", nullable = false)
@NotNull
private Vendedor vendedor;
@ManyToOne
@JoinColumn(name = "id_condicao_pagamento", nullable = false)
@NotNull
private CondicaoPagamento pagamento;
@ManyToOne
@JoinColumn(name = "idCliente", nullable = false)
@NotNull
private Cliente cliente;
@ManyToOne
@JoinColumn(name = "idCFOP", nullable = false)
@NotNull
private CFOP cfop;
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "item_venda",
joinColumns = @JoinColumn(name = "id_venda"))
private Set<ItemVenda> itens;
@Entity
@Table(name = "itemvenda")
public class ItemVenda implements Serializable, Comparable<ItemVenda> {
private static final long serialVersionUID = -6083937769807378921L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "Quantidade")
private Integer quantidade;
@Column(name = "ValorUnitario")
private Double valorUnitario;
@Column(name = "preco_total")
@NotNull
private Double precoTotal;
@Column(name = "data_venda")
private Date dataVenda;
@ManyToOne
@JoinColumn(name = "id_produto", nullable = false)
@NotNull
private Produto produto;
@ManyToOne
@JoinColumn(name = "id_venda", nullable = false)
@NotNull
private Venda venda;
public ItemVenda() {
}
}
@Entity
@Table(name = "venda")
public class Venda implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
private static final long serialVersionUID = 1L;
@Column(name = "dataVenda")
private Date dataVenda;
@Column(name = "Total")
private Double total;
@Column(name = "StatusVenda", length = 1)
private char statusVenda;
@ManyToOne
@JoinColumn(name = "id_vendedor", nullable = false)
@NotNull
private Vendedor vendedor;
@ManyToOne
@JoinColumn(name = "id_condicao_pagamento", nullable = false)
@NotNull
private CondicaoPagamento pagamento;
@ManyToOne
@JoinColumn(name = "idCliente", nullable = false)
@NotNull
private Cliente cliente;
@ManyToOne
@JoinColumn(name = "idCFOP", nullable = false)
@NotNull
private CFOP cfop;
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "item_venda",
joinColumns = @JoinColumn(name = "id_venda"))
private Set<ItemVenda> itens;
Adriano Aguiar
Curtidas 0