pertanyaan JPQL dalam JPA spesifikasi menawarkan sokongan asli untuk mengembalikan objek tersuai.
Tentukan kelas kacang mudah untuk mewakili struktur output yang diingini:
<code class="java">public class SurveyAnswerStatistics { private String answer; private Long cnt; // Constructor }</code>
Kemas kini kaedah repositori untuk mengembalikan kejadian kacang tersuai :
<code class="java">public interface SurveyRepository extends CrudRepository<Survey, Long> { @Query("SELECT new com.path.to.SurveyAnswerStatistics(v.answer, COUNT(v)) FROM Survey v GROUP BY v.answer") List<SurveyAnswerStatistics> findSurveyCount(); }</code>
Walaupun pertanyaan asli kekurangan sokongan langsung untuk kata kunci baharu, antara muka Tayangan Data Spring menyediakan alternatif penyelesaian:
Buat antara muka unjuran dengan sifat yang sepadan dengan output yang diingini: p>
<code class="java">public interface SurveyAnswerStatistics { String getAnswer(); int getCnt(); }</code>
Kemas kini kaedah repositori untuk mengembalikan sifat yang diunjurkan:
<code class="java">public interface SurveyRepository extends CrudRepository<Survey, Long> { @Query(nativeQuery = true, value = "SELECT v.answer AS answer, COUNT(v) AS cnt FROM Survey v GROUP BY v.answer") List<SurveyAnswerStatistics> findSurveyCount(); }</code>
Gunakan kata kunci SQL AS untuk memetakan medan hasil kepada sifat unjuran dengan lancar.
Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Objek Tersuai daripada Spring Data JPA GROUP BY Queries?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!