Ich habe einige Szenarien, in denen der Server Objekte von der Datenbank mit JPA abfragt und dann die Objekte über Webdienste an den Client sendet.
Da der Client in solchen Szenarien den vollständigen Graphen erwartet, würde ich die lazy loaded Collections mit eifrigem Laden überschreiben und wahrscheinlich einen Batch-Ladevorgang (für die Performance) anfordern.
Gibt es eine Möglichkeit in JPA (oder EclipseLink), die Abfrage in generischer Weise zu überschreiben (ohne die Abfrage neu zu schreiben) und das vollständige Diagramm anzufordern?
Wenn Sie eclipselink verwenden, können Sie die integrierten Abfragehinweise verwenden. Auf diese Weise müssen Sie Ihre jpql nicht neu schreiben, aber Sie können den Abruftyp in Java definieren.
10.1.3. Fetch Joins
JPQL-Abfragen können eine oder mehrere Join-Fetch-Deklarationen angeben, mit denen die Abfrage angeben kann, welche Felder in den zurückgegebenen Instanzen vorab abgerufen werden.
Die obige Abfrage gibt Magazine-Instanzen zurück und garantiert, dass das Feld articles bereits in den zurückgegebenen Instanzen abgerufen wird.
Mehrere Felder können in separaten Join-Fetch-Deklarationen angegeben werden:
Quelle: Ссылка
Tags und Links java jpa web-services eclipselink