Olá, estou com um problema para fazer um carrinho de compra para uma api rest+spring.
Eu tenho que inserir itens no pedido e usei o relacionamento manytomany para fazer isso, porem não consigo salvar quantidade por exemplo nessa tabela associativa.
Segue minhas classes:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ped_id")
// @JsonIgnore
private Long id;
@Column(name = "ped_data", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
@JsonFormat(pattern = "dd/MM/yyyy")
private Date data;
@ManyToOne
@JoinColumn(name = "cli_id", nullable = false)
private Cliente cliente;
@Column(name = "ped_valor_total", nullable = false, precision = 10, scale = 2)
private BigDecimal valorTotal;
@ManyToOne
@JoinColumn(name = "forpag_id", nullable = false)
private FormaDePagamento formaPgto;
@ManyToOne
@JoinColumn(name = "sta_id")
private Status status;
@Column(name = "ped_valor_desconto_total", nullable = false, precision = 10, scale = 2)
private BigDecimal valorDescontoTotal;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "pedido_produto", joinColumns = { @JoinColumn(name = "ped_id") }, inverseJoinColumns = {
@JoinColumn(name = "pro_id") })
private List<Produto> produto;
Classe associativa criada por mim.
package com.controlefinanceiro.models;
import java.math.BigDecimal;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "pedpro_pedido")
private Long id;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "ped_id")
private Pedido pedido;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "pro_id")
private Produto produto;
@Column(name = "pedpro_quantidade",precision = 10, scale = 2)
private BigDecimal quantidade;
@Column(name = "pedpro_valorunitario", precision = 10, scale = 2)
private BigDecimal valorUnitario;
@Column(name = "pedpro_desconto", precision = 10, scale = 2)
private BigDecimal desconto;
post para salvar um pedido.
{
“data”: “27/12/2017”,
“cliente”: {
“id”: 1,
“nome”: “Leonardo Bruno Santos Cunha”,
“cpf”: “38577846873”,
“email”: "leosantoscunha@hotmail.com",
“telefone”: “419981666941”
},
“valorTotal”: 1000,
“formaPgto”: {
“id”: 1,
“nome”: “A vista”
},
“status”: {
“id”: 1,
“nome”: “Aprovado”
},
“valorDescontoTotal”: 0,
“produto”: [{“id”:“1”},{“id”:“1”},{“id”:“2”}] para mim ter varios produtos eu preciso repetir o id.
gostaria de uma solução para isso.