首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用JpaRepository @Query获取count()结果列表?

如何使用JpaRepository @Query获取count()结果列表?
EN

Stack Overflow用户
提问于 2019-06-04 15:50:31
回答 1查看 143关注 0票数 0

我正在构建连接到ORACLE 11G DB的REST API。API使用JSON将数据发送到Android客户端。为了获取数据,我使用了JpaRepository和@Query注释。

我想为图表提供数据:按年计算的合同数量。

我有原生SQL查询:

代码语言:javascript
运行
复制
select aa.ROK, count(aa.NUMER_UMOWY) 
from (select distinct NUMER_UMOWY, ROK from AGR_EFEKTY) aa 
group by aa.ROK order by aa.ROK

使用SQL Developer查询的结果如下所示:

我尝试使用原生查询获取结果:

但是结果总是这样的:

或者错误,这取决于我尝试什么。

是否可以使用@Query获取count()结果列表

如果不是,我应该使用什么?

提前感谢:-)

EN

回答 1

Stack Overflow用户

发布于 2019-06-04 17:17:45

我认为您在这里尝试使用的是spring数据投影。如参考文档中所述:

Spring数据查询方法通常返回由存储库管理的聚合根的一个或多个实例。但是,有时可能需要基于这些类型的某些属性创建投影。Spring Data允许对专用的返回类型进行建模,以更有选择性地检索托管聚合的部分视图。

尤其是闭合投影,其中所有访问器方法都与目标属性匹配。在您的情况下,计数不是聚合的属性。要执行您想要执行的操作,可以使用构造函数,如下所示:

代码语言:javascript
运行
复制
class ContractsDto{


  private String rok;
  private int count;

  public ContractsDto(String rok, int count) {
    this.rok=rok;
    this.count =count;
  }
  // getters
}

查询将为:

代码语言:javascript
运行
复制
@Query(value = "select new ContractsDto(aa.rok , /*count */) from fromClause")
 List<ContractsDto> getContractsPerYear();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56439550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档