Spring Data JPA menyediakan mekanisme untuk melaksanakan pertanyaan JPQL dan mendapatkan hasil sebagai objek tersuai.
Langkah 1: Tentukan Kelas Kacang
Buat kelas kacang mudah untuk mewakili struktur objek yang diingini:
<code class="java">public class SurveyAnswerStatistics { private String answer; private Long count; // Constructor for object instantiation }</code>
Langkah 2: Gunakan Kacang dalam Kaedah Repositori
Ubah suai kaedah repositori untuk mengembalikan kejadian kelas kacang:
<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>
Jika menggunakan pertanyaan asli, sintaks khusus JPA tidak disokong. Sebaliknya, gunakan:
Langkah 1: Buat Antara Muka Unjuran
Tentukan antara muka unjuran untuk menentukan sifat objek yang dikehendaki:
<code class="java">public interface SurveyAnswerStatistics { String getAnswer(); int getCnt(); }</code>
Langkah 2: Petakan Medan Hasil dalam Pertanyaan
Gunakan kata kunci SQL AS dalam pertanyaan untuk memetakan medan hasil kepada sifat unjuran:
<code class="java">@Query(nativeQuery = true, value = "SELECT v.answer AS answer, COUNT(v) AS cnt FROM Survey v GROUP BY v.answer") List<SurveyAnswerStatistics> findSurveyCount(); }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Objek Tersuai daripada Hasil Pertanyaan Dikumpulkan JPA Data Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!