Heim > Java > javaLernprogramm > Hauptteil

Wie gebe ich benutzerdefinierte Objekte in Spring Data JPA GROUP BY-Abfragen zurück?

Mary-Kate Olsen
Freigeben: 2024-11-01 14:30:02
Original
491 Leute haben es durchsucht

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

Benutzerdefinierte Objektrückgabe in Spring Data JPA GROUP BY-Abfragen

Spring Data JPA bietet eine bequeme Möglichkeit, Datenbankoperationen mithilfe von JPQL (Java Persistence) durchzuführen Abfragesprache). Wenn Sie eine benutzerdefinierte JPQL-Abfrage mit einer GROUP BY-Klausel verwenden, möchten Sie möglicherweise benutzerdefinierte Objekte anstelle der integrierten SQL-Ergebnisarrays zurückgeben.

JPQL-Lösung

  1. Definieren Sie eine einfache Bean-Klasse:
<code class="java">public class SurveyAnswerStatistics {
    private String answer;
    private Long count;
    ... // getters and setters
}</code>
Nach dem Login kopieren
  1. Bean-Instanzen aus der Repository-Methode zurückgeben:
<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>
Nach dem Login kopieren

Native Query Solution

Für native Abfragen werden Spring Data Projection-Schnittstellen anstelle von Bean-Klassen verwendet:

  1. Definieren Sie eine Projektionsschnittstelle:
<code class="java">public interface SurveyAnswerStatistics {
    String getAnswer();
    int getCnt();
    ... // additional getters
}</code>
Nach dem Login kopieren
  1. Projizierte Eigenschaften aus der Abfrage zurückgeben:
<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>
Nach dem Login kopieren

Wichtige Hinweise

  • Verwenden Sie einen vollständig qualifizierten Pfad zur Bean-Klasse.
  • Rufen Sie den Bean-Konstruktor mit dem neuen Schlüsselwort auf.
  • Übergeben Sie Attribute in derselben Reihenfolge wie die Bean-Konstruktor-Parameter.
  • Stellen Sie sicher, dass die Abfrage eine gültige JPA-Abfrage ist.
  • Verwenden Sie das SQL-AS-Schlüsselwort für eine eindeutige Zuordnung, wenn Sie native Abfragen verwenden.

Das obige ist der detaillierte Inhalt vonWie gebe ich benutzerdefinierte Objekte in Spring Data JPA GROUP BY-Abfragen zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage