Java SpringDataJPA:如何执行聚合函数

Java SpringDataJPA:如何执行聚合函数,java,mysql,spring,spring-data-jpa,Java,Mysql,Spring,Spring Data Jpa,我使用的是Spring Data JPA,我需要执行SQL查询,如下所示: select key_1, sum(key_2), sum(key_3) from table_1 where key_1 in ('1', '2') and {dynamic_columns} group by key_1; 对于动态列,我使用的是Spring数据JPA规范,但我不确定如何在多个列上编写聚合函数,如sum()。使用Spring数据JPA,您在Spring存储库中有几个选项 参考资料: 指定本机查询

我使用的是Spring Data JPA,我需要执行SQL查询,如下所示:

select key_1, sum(key_2), sum(key_3) from table_1 
where key_1 in ('1', '2') and {dynamic_columns} group by key_1;

对于动态列,我使用的是Spring数据JPA规范,但我不确定如何在多个列上编写聚合函数,如sum()。

使用Spring数据JPA,您在Spring存储库中有几个选项

参考资料:

指定本机查询

@Query(value="select key_1, sum(key_2) ...", nativeQuery=true)
Optional<Object[]> getAggregates;

如果这不是您想要的,我需要更多的信息来帮助您。

感谢您抽出时间提供帮助。以上选项在我的情况下无效,因为where子句是基于条件的。为了生成where子句,我使用了SpringDataJPA规范,但它似乎不支持聚合函数。
@Query(value="select e.key_1, sum(e.key_2) from entity e ...")
Optional<Object[]> getAggregates;
Optional<List<Object[]>> getAggregates;
if(objectsOptional.isPresent()) {
    Objects[] objects = objectsOptional.get();
    ...
}