1
resposta

Para quem estiver com problema para mostrar o resultado da média...

Na aula, o professor mostra como realizar a média das movimentações. Porém, nas versões mais atuais do JPA o "getSingleResult()" executa selects apenas do tipo BigDecimal, então se você precisa retornar um double, precisa colocar na frente o "doubleValue()"

Por exemplo:

Double mediaMovimentacoes = query.getSingleResult().doubleValue();

1 resposta

Fala, Arthur! Tudo bem contigo?

Muito obrigado por postar essa informação.

Eu rodei e no meu caso rodou tranquilamente sem a necessidade de colocar o .doubleValue()no final, porém, com certeza haverá situações em que será necessário acrescentar.

    public static void main(String[] args) {

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("alura");
        EntityManager em = emf.createEntityManager();

        String jpql = "select avg(m.valor) from Movimentacao m";

        TypedQuery<Double> query = em.createQuery(jpql, Double.class);
        Double mediaDasMovimentacoes = query.getSingleResult();

        System.out.println("A média das movimentações é: " + mediaDasMovimentacoes);
    }

Ou, conforme sua dica:

Double mediaDasMovimentacoes = query.getSingleResult().doubleValue();

Valeu!

Um abraço e bons estudos!!!