檢索將資料作為來自Spring Data JPA GROUP BY 查詢的自訂物件增強了資料表示並簡化了進一步處理。本指南探討如何實現這一目標,並展示了 JPQL 和本機查詢的解決方案。
JPA 規範中的 JPQL 查詢提供本機查詢支援傳回自訂物件。
定義一個簡單的Bean表示所需輸出結構的類別:
public class SurveyAnswerStatistics {
private String answer;
private Long cnt;
// Constructor
}
更新儲存庫方法以傳回自訂Bean 的實例:
public interface SurveyRepository extends CrudRepository {
@Query("SELECT new com.path.to.SurveyAnswerStatistics(v.answer, COUNT(v)) FROM Survey v GROUP BY v.answer")
List findSurveyCount();
}
雖然原生查詢缺乏對new 關鍵字的直接支持,但Spring Data Projection 介面提供了替代解決方案:
建立一個投影接口,其屬性與所需的屬性相對應輸出:
public interface SurveyAnswerStatistics {
String getAnswer();
int getCnt();
}
更新儲存庫方法以傳回投影屬性:
public interface SurveyRepository extends CrudRepository {
@Query(nativeQuery = true, value =
"SELECT v.answer AS answer, COUNT(v) AS cnt FROM Survey v GROUP BY v.answer")
List findSurveyCount();
}
使用 SQL AS 關鍵字將結果欄位無縫地對應到投影屬性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3