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();
}
}