spring-data-rest, können Sie vollständige Details der Entität anstelle von (oder mit) link [duplizieren] angeben

8

Gibt es eine Möglichkeit, die vollständigen Details einer verbundenen Entität anstelle einer Verknüpfung zurückzugeben? Im Beispiel unten möchte ich auch die Details des Produkts zurückgeben, wenn ich eine Liste von 100 Käufen habe, würde es vermeiden, 100 Anrufe zu machen, um die Produktdetails zu erhalten.

Die Repositories für die Entitäten Product, User und Purchase werden alle unter Verwendung von spring-data-jpa

erstellt %Vor%

Entitäten und Repositories;

%Vor%     
wenic 23.02.2014, 22:35
quelle

3 Antworten

2

Es scheint, dass bereits eine neue Funktion für diese Funktionalität vorhanden ist;

Ссылка

Ссылка

Ich lasse die Frage offen, bis die Funktion implementiert wurde.

    
wenic 27.02.2014 10:44
quelle
0

Ja.

Sie können etwas wie eine TypedQuery .

Sie würden also ein Plain Old Java Object (POJO) erstellen, das alle benötigten Spalten (Felder) enthält. Sie verwenden dann eine TypeQuery, um alle Felder aus der Datenbank abzurufen und in einer benutzerdefinierten Ergebnismenge (d. H. Ihrem POJO oder einer Sammlung Ihres POJO) zurückzugeben.

Hier ist ein Beispiel:

%Vor%

AKTUALISIEREN

Es sieht so aus, als hätten Sie bereits verbundene Entitäten. Wenn Sie "Eager Loading" verwenden, müssen Sie lediglich eine einfache Abfrage in Ihrer Repositoryimplementierung durchführen. Eager Loading bedeutet, dass JPA automatisch die zugehörigen Attribute auswählt. Wenn Sie Jersey verwenden, um das Ergebnis in JSON zu serialisieren, serialisiert es standardmäßig die Felder der Ergebnismenge.

Hier ist ein Beispiel aus einem JPA-Projekt, das ich kürzlich abgeschlossen habe. Das Schema ist einfach. Ich habe eine Entität "Buch". Jedes "Buch" hat einen verwandten "Autor". Jeder "Autor" hat einen Vor- und Nachnamen. Wenn Sie ein "Buch" auswählen, wählen Sie in der JPA-Abfrage auch den Vor- und Nachnamen des Autors. Ich glaube, das ist analog zu dem, was Sie erreichen wollen:

%Vor%

Die Eingabe id ist einfach die Buch-Taste (eine Zahl wie 105).

Hoffe das hilft:)

    
lorinpa 23.02.2014 23:17
quelle
0

Sie können projecton schreiben, um die Details zu erhalten. Zum Beispiel kann PurchaseProjection als geschrieben werden.

%Vor%

Sie können auf das Ergebnis mit zugreifen Ссылка

    
Abhinay 21.10.2017 10:05
quelle