Spring Data JPA bietet Mechanismen zum Ausführen von JPQL-Abfragen und zum Abrufen von Ergebnissen benutzerdefinierte Objekte.
Schritt 1: Definieren Sie eine Bean-Klasse
Erstellen Sie eine einfache Bean-Klasse, um die gewünschte Objektstruktur darzustellen:
<code class="java">public class SurveyAnswerStatistics { private String answer; private Long count; // Constructor for object instantiation }</code>
Schritt 2: Verwenden Sie die Bean in der Repository-Methode
Ändern Sie die Repository-Methode, um Instanzen der Bean-Klasse zurückzugeben:
<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>
Bei Verwendung nativer Abfragen wird die JPA-spezifische Syntax nicht unterstützt. Verwenden Sie stattdessen:
Schritt 1: Erstellen Sie eine Projektionsschnittstelle
Definieren Sie eine Projektionsschnittstelle, um die Eigenschaften des gewünschten Objekts anzugeben:
<code class="java">public interface SurveyAnswerStatistics { String getAnswer(); int getCnt(); }</code>
Schritt 2: Ergebnisfelder in der Abfrage zuordnen
Verwenden Sie das SQL-AS-Schlüsselwort in der Abfrage, um Ergebnisfelder Projektionseigenschaften zuzuordnen:
<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>
Das obige ist der detaillierte Inhalt vonWie rufe ich benutzerdefinierte Objekte aus gruppierten Spring Data JPA-Abfrageergebnissen ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!