我正在构建连接到ORACLE 11G DB的REST API。 API使用JSON将数据发送到Android客户端。为了获取数据,我使用了JpaRepository和@Query
批注。
我想提供图表数据:合同年数。
我有本机SQL查询:
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的查询结果如下:
我尝试使用本机查询获得结果:
但是结果总是这样:
还是错误,取决于我的尝试。
是否可以使用count()
获得@Query
结果的列表?
如果没有,我应该怎么用?
预先感谢:-)
答案 0 :(得分:0)
我认为您要在这里使用的是Spring数据投影。 如参考文档中所述:
Spring Data查询方法通常返回一个或多个实例 存储库管理的聚合根。但是,可能 有时希望根据某些 这些类型的属性。 Spring Data允许建模专用 返回类型,以更选择性地检索 托管聚合。
,尤其是封闭的投影,其中所有访问器方法都与目标属性匹配。在您的情况下,计数不是汇总的属性。 要执行所需的操作,可以使用以下构造函数:
class ContractsDto{
private String rok;
private int count;
public ContractsDto(String rok, int count) {
this.rok=rok;
this.count =count;
}
// getters
}
查询将是:
@Query(value = "select new ContractsDto(aa.rok , /*count */) from fromClause")
List<ContractsDto> getContractsPerYear();