簡體   English   中英

如何使用JpaRepository @Query獲取count()結果列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM