Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não foi possível extrair ResultSet

Estou usando Postgres e me deparei com um erro e preciso de ajuda.

Caused by: org.postgresql.util.PSQLException: ERROR: column "movimentac0_.valor" must appear in the GROUP BY clause or be used in an aggregate function Posição: 140

package br.com.acima.financas.teste;

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

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.acima.financas.modelo.Conta;
import br.com.acima.financas.modelo.Movimentacao;
import br.com.acima.financas.modelo.TipoMovimentacao;
import br.com.acima.financas.util.JPAUtil;

public class TesteFuncoesJPQL {

    public static void main(String[] args) {

        EntityManager em = new JPAUtil().getEntityManager();
        em.getTransaction().begin();

        Conta conta = new Conta();
        conta.setId(1);

        String jpql = "select  sum(m.valor) from Movimentacao m where m.conta = :pConta"
                + " and m.tipo = :pTipo"
                + " order by m.valor desc";
        Query query = em.createQuery(jpql); 
        query.setParameter("pConta", conta);
        query.setParameter("pTipo", TipoMovimentacao.SAIDA);

        BigDecimal soma = (BigDecimal) query.getSingleResult();

        System.out.println("Total de movimentações: " + soma);

        em.getTransaction().commit();
        em.close();
    }
}
1 resposta
solução!

Oi Elias, tudo bem?

Para resolver esse problema, adicione a cláusula GROUP BY na sua query:

select  sum(m.valor) from Movimentacao m where m.conta = :pConta" and m.tipo = :pTipo" GROUP BY m.valor order by m.valor desc