Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Query diferente

Meu código vinha dando erro no console devido ao ORDER BY e ao GROUP BY. Eu tive que mudar o ORDER BY colocando a mesma função SUM que foi usada pra pegar a quantidade total de itens. Dessa forma, deu certo. Estou usando o MySQL. Minha Query ficou assim:

    public List<Object[]> relatorioDeVendas(){
        String jpql = "SELECT produto.nome, "
                + "SUM(item.quantidade), "
                + "MAX(pedido.data) "
                + "FROM Pedido pedido "
                + "JOIN pedido.itens item "
                + "JOIN item.produto produto "
                + "GROUP BY produto.nome "
                **+ "ORDER BY SUM(item.quantidade) DESC ";**

        return em.createQuery(jpql, Object[].class).getResultList();
    }

Deveria funcionar sem esse SUM no Order By, ou é uma diferença comum do MySQL?

2 respostas
solução!

Oi!

Sim, a query mostrada na aula causa exception se tiver vários produtos com várias vendas, justamente por conta do ORDER BY. Talvez colocando um alias no sum também resolva:

SELECT produto.nome, "
    + "SUM(item.quantidade) AS somatorio, "
    + "MAX(pedido.data) "
    + "FROM Pedido pedido "
    + "JOIN pedido.itens item "
    + "JOIN item.produto produto "
    + "GROUP BY produto.nome "
    + "ORDER BY somatorio DESC "

Bons estudos!

Perfeito! Obrigado