Ich verwende Federdaten JPA in meinem Projekt. Ich spiele mit Millionen von Platten. Ich habe eine Anforderung, wo ich Daten für verschiedene Tabellen abrufen und ein Objekt erstellen und dann auf einer Benutzeroberfläche malen muss. Nun, wie Sie dies erreichen, meine Spring Data Repositories. Ich habe gelesen, dass es durch benannte native Abfragen erreicht werden kann.Spring Data JPA: Wie kann die Abfrage Objekte oder eine Liste von Objekten zurückgeben?
Wenn die benannte nativen Abfrage keine Einheit oder eine Liste von Einheiten zurückkehren, können wir das Abfrageergebnis auf einen korrekten Rückgabetyp von mit dem @SqlResultSetMapping kommentierten Abbildung.
Aber wenn ich versuche, @SqlResultSetMapping
zu verwenden, um es macht einen weiteren entityResult. Was ich verstehe, ist, dass es nur eine Transformation eines Abfrageergebnisses in Entity - Ergebnismenge ist, aber ich möchte eine Ergebnismenge von Nicht - Entitäts - Objekten.
@SqlResultSetMapping(
name="studentPercentile",
entities={
@EntityResult(
entityClass=CustomStudent.class,
fields={
@FieldResult(name="id", column="ID"),
@FieldResult(name="firstName", column="FIRST_NAME"),
@FieldResult(name="lastName", column="LAST_NAME")
}
)
}
)
@NamedNativeQuery(
name="findStudentPercentile",
query="SELECT * FROM STUDENT",
resultSetMapping="studentPercentile")
In obigem Beispiel versuche ich nur ein Ergebnis von Student Entity in einer anderen pojo zu bekommen ‚CustomStudent‘, der kein Unternehmen ist. (Dieses Beispiel, das ich versuche, nur für POC-Zweck auszuführen, ist tatsächlicher Usecase viel komplizierter, mit komplizierter Abfrage, die unterschiedliche resultset zurückgibt).
Wie erreicht man obigen Anwendungsfall? Gibt es einen anderen Weg neben der Verwendung der Namensabfrage, dass meine Repository - Methode Nicht - Entitäten - Objekte zurückgibt?
Ich stieß vor kurzem auf das gleiche Problem und freue mich, jemanden zu sehen und eine Lösung dafür zu bekommen! –