2017-11-27 2 views
0

Ich habe ein Spring Data JPA-Projekt, das konfiguriert ist, um Links für einige Spalten zurückzugeben, die mit anderen Tabellen verknüpft sind.Wie kann ich Links und Werte aus einer Spalte mit Spring Data JPA erhalten?

Der Zeilenwert ist eine ID, die als Fremdschlüssel zu einer anderen Tabelle fungiert, daher die Links korrekt ist und funktioniert für meine PUT-Anfragen, aber in einigen Fällen muss ich den Wert anstelle der Verknüpfung abrufen, um zu vermeiden den Link für jedes zurückgegebene Objekt aufrufen müssen, um den gleichen Wert zu kennen, den die Tabelle bereits hat.

Gibt es eine Möglichkeit, es zu tun?

Z. B .:

Anfordern Matches gibt eine Sammlung von diesen.

{ 
    "homeTeamGoals": 1, 
    "awayTeamGoals": 0 
    "_links": { 
     "self": { 
     "href": "http://localhost:8080/matches/31102" 
     }, 
     "match": { 
     "href": "http://localhost:8080/matches/31102" 
     }, 
     "homeTeam": { 
     "href": "http://localhost:8080/matches/31102/homeTeam" 
     }, 
     "awayTeam": { 
     "href": "http://localhost:8080/matches/31102/awayTeam" 
     } 
    } 
    } 

Ich muss eine Tabelle mit 200 Übereinstimmungen erstellen. Im momentanen Zustand muss ich meine 200 Matches nehmen und jeweils 2 Calls machen, an das homeTeam und an awayTeam um zu wissen, wer gespielt hat und dann alle meine Berechnungen machen.

Was ich brauche ist, um den Wert aus der Spalte (die eine ID ist) zu bekommen, so kann ich nur 1 Anruf machen, um die Spiele zu bekommen, und ich weiß bereits, wer gespielt hat. Wenn ich das Team auflösen muss, werde ich 20 Anrufe machen, wenn ich meine endgültige Liste habe, anstatt der 400, die ich jetzt haben muss.

+0

Warum erstellen Sie keine Abfragen und geben DTOs zurück, die Ihren Anforderungen entsprechen? Schauen Sie hier: https://vladmihalcea.com/2017/08/29/the-best-way-to-map-a-projection-query-to-a-dto-with-jpa-and-hibernate/ –

Antwort