Boa noite. Estava acompanhando o professor no vídeo, mas na hora de executar, ocorreu uma IllegalArgumentException. Tentei revisar mais não encontrei o erro.
public class RelatorioDeVendasVo {
private String nomeProduto;
private Integer quantidadeVendida;
private LocalDate dataUltimaVenda;
public RelatorioDeVendasVo(String nomeProduto, Integer quantidadeVendida, LocalDate dataUltimaVenda) {
this.nomeProduto = nomeProduto;
this.quantidadeVendida = quantidadeVendida;
this.dataUltimaVenda = dataUltimaVenda;
}
public String getNomeProduto() {
return nomeProduto;
}
public Integer getQuantidadeVendida() {
return quantidadeVendida;
}
public LocalDate getDataUltimaVenda() {
return dataUltimaVenda;
}
@Override
public String toString() {
return "RelatorioDeVendasVo{" +
"nomeProduto='" + nomeProduto + '\'' +
", quantidadeVendida=" + quantidadeVendida +
", dataUltimaVenda=" + dataUltimaVenda +
'}';
}
}
public RelatorioDeVendasVo relatorioDeVendas(){
String jpql = "SELECT new br.com.alura.loja.vo.RelatorioDeVendasVo( "
+ "produto.nome, "
+ "SUM(item.quantidade), "
+ "MAX(pedido.data)) "
+ "FROM Pedido pedido "
+ "JOIN pedido.itens item "
+ "JOIN item.produto produto "
+ "GROUP BY produto.name "
+ "ORDER BY item.quantidade DESC";
return em.createQuery(jpql, RelatorioDeVendasVo.class).getSingleResult();
(Parte corrigida)Esta parte também estou em duvida. Fiz igual o professor mas minha IDE fala que esta errado.
Se tento corrigir com a IDE fica assim
List<RelatorioDeVendasVo> relatorio = (List<RelatorioDeVendasVo>) pedidoDao.relatorioDeVendas();
relatorio.forEach(System.out::println);
E da aquela IllegalArgumentException. Alguem pode me dar uma luz no que estou fazendo de errado ?