Rumah >Java >javaTutorial >Bagaimana untuk Mengembalikan Objek Tersuai daripada Spring Data JPA GROUP BY Queries?

Bagaimana untuk Mengembalikan Objek Tersuai daripada Spring Data JPA GROUP BY Queries?

Susan Sarandon
Susan Sarandonasal
2024-11-02 06:16:02714semak imbas

How to Return Custom Objects from Spring Data JPA GROUP BY Queries?

Pemulangan Objek Tersuai dalam Data Spring JPA KUMPULAN MENGIKUT Pertanyaan

Pengenalan;<🎜 p>Mengambil data sebagai objek tersuai daripada pertanyaan JPA GROUP BY Spring Data meningkatkan persembahan data dan memudahkan pemprosesan selanjutnya. Panduan ini meneroka cara untuk mencapai ini, mempamerkan penyelesaian untuk kedua-dua JPQL dan pertanyaan asli.


JPQL Queries

pertanyaan JPQL dalam JPA spesifikasi menawarkan sokongan asli untuk mengembalikan objek tersuai.


Langkah 1: Buat Kacang 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>

Langkah 2: Kembalikan Contoh Kacang

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>

Pertanyaan Asli

Walaupun pertanyaan asli kekurangan sokongan langsung untuk kata kunci baharu, antara muka Tayangan Data Spring menyediakan alternatif penyelesaian:


Langkah 1: Tentukan Antara Muka Unjuran

Buat antara muka unjuran dengan sifat yang sepadan dengan output yang diingini:

<code class="java">public interface SurveyAnswerStatistics {
  String getAnswer();
  int getCnt();
}</code>

Langkah 2: Kembalikan Sifat Unjuran

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!

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