Minha query está errada mesmo após o código estar igual ao do professor.
TOTAL VENDIDO: null
package br.com.alura.loja.modelo;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "pedidos")
public class Pedido {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="valor_total")
private BigDecimal valorTotal = BigDecimal.ZERO;
private LocalDate data = LocalDate.now();
@ManyToOne
private Cliente cliente;
@OneToMany(mappedBy="pedido", cascade = CascadeType.ALL)
private List<ItemPedido> itens = new ArrayList<>();
public Pedido() {
}
public Pedido(Cliente cliente) {
this.cliente = cliente;
}
public void adicionarItem(ItemPedido item) {
item.setPedido(this);
this.itens.add(item);
this.valorTotal = this.valorTotal.add(item.getValor());
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public BigDecimal getValorTotal() {
return valorTotal;
}
public void setValorTotal(BigDecimal valorTotal) {
this.valorTotal = valorTotal;
}
public LocalDate getData() {
return data;
}
public void setData(LocalDate data) {
this.data = data;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
}
package br.com.alura.loja.modelo;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "itens_pedido")
public class ItemPedido {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="preco_unitario")
private BigDecimal precoUnitario;
private int quantidade;
@ManyToOne
private Pedido pedido;
@ManyToOne
private Produto produto;
public Pedido getPedido() {
return pedido;
}
public void setPedido(Pedido pedido) {
this.pedido = pedido;
}
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
public Long getId() {
return id;
}
public ItemPedido() {
}
public ItemPedido(int quantidade, Pedido pedido, Produto produto) {
super();
this.quantidade = quantidade;
this.pedido = pedido;
this.precoUnitario = produto.getPreco();
this.produto = produto;
}
public void setId(Long id) {
this.id = id;
}
public BigDecimal getPrecoUnitario() {
return precoUnitario;
}
public void setPrecoUnitario(BigDecimal precoUnitario) {
this.precoUnitario = precoUnitario;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public BigDecimal getValor() {
return precoUnitario.multiply(new BigDecimal(quantidade));
}
}