
Pemulangan Objek Tersuai dalam Spring Data JPA GROUP BY Queries
Spring Data JPA menawarkan cara yang mudah untuk melaksanakan operasi pangkalan data menggunakan JPQL (Java Persistence Bahasa Pertanyaan). Apabila menggunakan pertanyaan JPQL tersuai dengan klausa GROUP BY, anda mungkin mahu mengembalikan objek tersuai dan bukannya tatasusunan hasil SQL terbina.
JPQL Solution
- Tentukan kelas kacang mudah:
1 2 3 4 5 | <code class = "java" > public class SurveyAnswerStatistics {
private String answer;
private Long count ;
...
}</code>
|
Salin selepas log masuk
- Kembalikan contoh kacang daripada kaedah repositori:
1 2 | <code class = "java" >@Query( "SELECT new com.path.to.SurveyAnswerStatistics(v.answer, COUNT(v)) FROM Survey v GROUP BY v.answer" )
public List<SurveyAnswerStatistics> findSurveyCount();</code>
|
Salin selepas log masuk
Penyelesaian Pertanyaan Asli
Untuk pertanyaan asli, antara muka Tayangan Data Spring digunakan dan bukannya kelas kacang:
- Tentukan antara muka unjuran:
1 2 3 4 5 | <code class = "java" > public interface SurveyAnswerStatistics {
String getAnswer();
int getCnt();
...
}</code>
|
Salin selepas log masuk
- Kembalikan sifat yang diunjurkan daripada pertanyaan:
1 2 | <code class = "java" >@Query(nativeQuery = true, value = "SELECT v.answer AS answer, COUNT(v) AS cnt FROM Survey v GROUP BY v.answer" )
public List<SurveyAnswerStatistics> findSurveyCount();</code>
|
Salin selepas log masuk
Nota Penting
- Gunakan laluan yang layak sepenuhnya ke kelas kacang.
- Panggil pembina kacang menggunakan kata kunci baharu.
- Lepaskan atribut dalam susunan yang sama seperti parameter pembina kacang.
- Pastikan pertanyaan adalah pertanyaan JPA yang sah.
- Gunakan kata kunci SQL AS untuk pemetaan yang tidak jelas apabila menggunakan pertanyaan asli.
Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Objek Tersuai dalam Data Spring JPA GROUP BY Queries?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!