Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mendapatkan Objek Tersuai daripada Hasil Pertanyaan Dikumpulkan JPA Data Spring?

Bagaimana untuk Mendapatkan Objek Tersuai daripada Hasil Pertanyaan Dikumpulkan JPA Data Spring?

DDD
DDDasal
2024-11-01 14:21:02487semak imbas

How to Retrieve Custom Objects from Spring Data JPA Grouped Query Results?

Cara Mendapatkan Objek Tersuai daripada Spring Data JPA Hasil Pertanyaan Berkumpulan

Gambaran Keseluruhan

Spring Data JPA menyediakan mekanisme untuk melaksanakan pertanyaan JPQL dan mendapatkan hasil sebagai objek tersuai.

Pertanyaan JPQL

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>

Pertanyaan Asli

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>

Pertimbangan

  • Pastikan laluan kelas kacang adalah layak sepenuhnya.
  • Gunakan kata kunci baharu semasa membuat seketika kelas kacang.
  • Tertib atribut dalam pembina mesti sepadan dengan susunan medan pertanyaan.
  • Gunakan antara muka unjuran untuk pertanyaan asli.
  • Peta setiap medan hasil menggunakan AS dalam pertanyaan asli.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn