4
respostas

Não encontrou a classe RelatorioDeVendasVo : Exception

Meu código está dando erro!

package br.com.alura.loja.dao;

import java.math.BigDecimal;
import java.util.List;

import javax.persistence.EntityManager;

import br.com.alura.loja.modelo.Pedido;
import br.com.alura.loja.vo.RelatorioDeVendasVo;

public class PedidoDao {

    private EntityManager em;

    public PedidoDao(EntityManager em) {
        this.em = em;
    }

    public void cadastrar(Pedido pedido) {
        this.em.persist(pedido);
    }

    public BigDecimal valorTotalVendido() {
        String jpql = "SELECT SUM(p.valorTotal) FROM Pedido p";
        return em.createQuery(jpql, BigDecimal.class).getSingleResult();
    }

    public List<RelatorioDeVendasVo> relatorioDeVendas() {

        String jpql = "SELECT new RelatorioDeVendasVo("
                + "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, RelatorioDeVendasVo.class).getResultList();

    }

}

está dando uma exception falando que não está encontrando minha classe RelatorioDeVendasVo.

porém eu criei o RelatorioDeVendasVo

package br.com.alura.loja.vo;

import java.time.LocalDate;

public class RelatorioDeVendasVo {

    private String nome;
    private Integer quantidade;
    private LocalDate data;


    public RelatorioDeVendasVo(String nome, Integer quantidade, LocalDate data) {
        this.nome = nome;
        this.quantidade = quantidade;
        this.data = data;
    }


    public String getNome() {
        return nome;
    }
    public Integer getQuantidade() {
        return quantidade;
    }
    public LocalDate getData() {
        return data;
    }



}
4 respostas

Oi João!

Faltou colocar o pacote da classe:

SELECT new br.com.alura.loja.vo.RelatorioDeVendasVo

no meu código da a mesma Exception, mesmo com o nome do pacote após o new, na query...

Kevin, manda aqui o seu codigo. Tanto da consulta, quanto da classe Vo

Professor Rodrigo, reescrevi o código várias vezes ontem, e mesmo assim, a exception não me deixava prosseguir.. troquei de Long pra Integer na quantidade, enfim, várias tentatidas e nada, porém hoje quando abri o código e mandei que executasse, rodou liso sem exception, sendo que ontem também tentei fechar e abrir a IDE pra ver se rodava.. enfim, obrigado! hahahha

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software