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

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: pedido near line 1, column 109 [ SELECT produto.nome, SUM(item.quantidade), MAX(pedido.data)FROM br.com.curso.loja.modelo.Pedido pedidoJOIN pedido.itens item JOIN item.produto produtoG

Boa tarde professor , meu codigo está semelhante porém está dando erro

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 item.quantidade DESC";

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

public static void main(String[] args) {

    popularBancoDados(); 

    EntityManager em = JPAUtil.getEntityManager();
    ProdutoDAO produtoDAO = new ProdutoDAO(em);
    Produto produtoRecuperado = produtoDAO.buscarPorId(1l);

    ClienteDAO clienteDAO = new ClienteDAO(em);
    Cliente clienteRecuperado = clienteDAO.buscarPorId(1l);

    em.getTransaction().begin(); 

    Pedido pedido = new Pedido(clienteRecuperado);
    pedido.adicionarItem(new ItemPedido(10, pedido, produtoRecuperado));


    PedidoDAO pedidoDao = new PedidoDAO(em);
    pedidoDao.cadastrar(pedido);

    em.getTransaction().commit(); 

    BigDecimal totalVendido = pedidoDao.valorTotalVendido();

    System.out.println("Valor Total vendido = " +totalVendido);

    List<Object[]> relatorio = pedidoDao.relatorioDeVendas();
     for (Object[] obj : relatorio) {
         System.out.println(obj[0]);
         System.out.println(obj[1]);
         System.out.println(obj[2]);
    }

}
3 respostas

Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: pedido near line 1, column 109 [ SELECT produto.nome, SUM(item.quantidade), MAX(pedido.data)FROM br.com.curso.loja.modelo.Pedido pedidoJOIN pedido.itens item JOIN item.produto produtoGROUP BY produto.nome ORDER BY item.quantidade DESC]

a exception

solução!

Oi Moises,

Ta faltando um espaco em branco na query.

Verifica se em todas as linhas de concatenacao tem um espaco em branco antes de fechar a String.

Opa era isso Rodrigo , vlw mesmo e obrigado pelo suporte e pelo conhecimento que está passando ta sendo muito gratificante