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

[Projeto] Obter retorno de resumo de tabela do Mysql em Java/Spring boot/JPA

Possuo uma tabela de "Notas Fiscais" da qual eu sempre adiciono um novo item quando a uma nova nota é gerada. Meu objetivo é o de resumir essa tabela com o retorno da lista de pessoas com o somatório de seus gastos. No momento, estou utilizando o "SUM"; "GROUP BY" e "WHERE" em minha query e infelizmente dessa forma eu só obtenho apenas uma lista de pessoas com os seus últimos gastos e não o somatório de todos os seus gastos.

Se ficou confuso, posso tentar dar melhores detalhes do projeto. Meu código abaixo

    // Minha classe modelo
    @Entity
public class NotaFiscal {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne()
    private Pessoa pessoa;


    private LocalDate data;

    private String placa;

    @ManyToOne
    private Conjunto conjunto;

    @ManyToOne
    private Periodo periodo;

    private BigDecimal valor;

    -------------------------------//-----------------------------

    //Repositório da Nota FIscal
        @Query("SELECT n, SUM(n.valor) FROM NotaFiscal n WHERE n.pessoa.periodo.id = :idPeriodo AND n.conjunto = :conjunto GROUP BY n.pessoa, n.valor")
    List<NotaFiscal> findBySomarPessoasPorConjunto(Long idPeriodo, Conjunto conjunto);
        -------------------------------//-----------------------------

2 respostas
solução!

Boa noite, o seu erro é apenas o seu GROUP BY.

    @Query("SELECT n, SUM(n.valor) FROM NotaFiscal n WHERE n.pessoa.periodo.id = :idPeriodo AND n.conjunto = :conjunto GROUP BY n.pessoa")

Deixe agrupado pelo pessoa, que é o acumulativo que você deseja.

Ah positivo, muito obrigado