Spring Data JPA GROUP BY クエリで返されるカスタム オブジェクト
Spring Data JPA は、JPQL (Java Persistence) を使用してデータベース操作を実行する便利な方法を提供します。クエリ言語)。 GROUP BY 句を含むカスタム JPQL クエリを使用する場合、組み込み SQL 結果配列の代わりにカスタム オブジェクトを返したい場合があります。
JPQL ソリューション
<code class="java">public class SurveyAnswerStatistics { private String answer; private Long count; ... // getters and setters }</code>
<code class="java">@Query("SELECT new com.path.to.SurveyAnswerStatistics(v.answer, COUNT(v)) FROM Survey v GROUP BY v.answer") public List<SurveyAnswerStatistics> findSurveyCount();</code>
ネイティブ クエリ ソリューション
ネイティブ クエリの場合、Bean クラスの代わりに Spring Data Projection インターフェイスが使用されます:
<code class="java">public interface SurveyAnswerStatistics { String getAnswer(); int getCnt(); ... // additional getters }</code>
<code class="java">@Query(nativeQuery = true, value = "SELECT v.answer AS answer, COUNT(v) AS cnt FROM Survey v GROUP BY v.answer") public List<SurveyAnswerStatistics> findSurveyCount();</code>
重要な注意事項
以上がSpring Data JPA GROUP BY クエリでカスタム オブジェクトを返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。