![](/img/trans.png)
[英]How to COUNT GROUP BY using JPARepository JPASpecificationExecutor with CustomSpecification
[英]How to obtain list of count() results using JpaRepository @Query?
我正在構建連接到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查詢的結果如下所示:
我試圖使用本機查詢獲得結果:
但結果總是這樣:
或錯誤取決於我嘗試。
是否可以使用@Query
獲取count()
結果@Query
?
如果沒有,我應該使用什么?
提前致謝 :-)
我想你在這里嘗試使用的是彈簧數據投影。 如參考文檔中所述:
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.