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

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

Susan Sarandon
Lepaskan: 2024-11-01 08:51:30
asal
688 orang telah melayarinya

How to Return a Custom Object from a Spring Data JPA GROUP BY Query?

Cara Mengembalikan Objek Tersuai daripada Data Spring JPA KUMPULAN OLEH Pertanyaan

Apabila melakukan pertanyaan kompleks menggunakan Spring Data JPA, ia menjadi perlu untuk mengembalikan objek tersuai dan bukannya entiti lalai. Satu senario sedemikian melibatkan pengumpulan hasil mengikut medan tertentu dan mendapatkan semula kiraan untuk setiap kumpulan. Artikel ini akan meneroka dua kaedah untuk mencapai ini: satu untuk pertanyaan JPQL dan satu untuk pertanyaan asli.

Penyelesaian untuk Pertanyaan JPQL

JPQL menyediakan sokongan asli untuk mengembalikan objek tersuai menggunakan kata kunci baharu. Begini caranya:

  1. Tentukan kelas kacang mudah untuk mewakili struktur data yang diingini.
  2. Kembalikan tika kelas kacang ini daripada kaedah repositori.
<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();
}

public class SurveyAnswerStatistics {
    private String answer;
    private Long cnt;
    // getters and setters here
}</code>
Salin selepas log masuk

Penyelesaian untuk Pertanyaan Asli

Pertanyaan asli tidak menyokong kata kunci baharu. Sebaliknya, gunakan antara muka unjuran Data Spring:

  1. Tentukan antara muka unjuran dengan sifat yang diingini.
  2. Kembalikan sifat unjuran daripada pertanyaan.
<code class="java">public interface SurveyAnswerStatistics {
    String getAnswer();
    int getCnt();
}

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>
Salin selepas log masuk

Nota Penting:

  • Pastikan laluan yang layak sepenuhnya dan penggunaan kata kunci baharu untuk pertanyaan JPQL.
  • Gunakan kata kunci AS SQL untuk memetakan medan hasil dengan antara muka unjuran dalam pertanyaan asli.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Objek Tersuai daripada Spring Data JPA GROUP BY Query?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan