Ich entwickle ein relativ großes Projekt mit Spring Boot, und in einer allgemeinen Weise bin ich ziemlich glücklich damit, aber ich habe einige Probleme, dass in meinen Gedanken sollte kein Problem sein.Lazy One-To-One Frühling JPA und Gebäude "dynamische" JSON
Vor allem, One-to-One-Beziehung. Es ist frustrierend, dass es nicht funktioniert (zumindest in meinen Gedanken).
Ich habe zwei Entitäten,
User
undUserProfile
, zum Beispiel. Sie haben One-to-One-Beziehung, aber die meiste Zeit brauche ich nur dieUser
Daten, aber es holt (egal was ich versuche, und oh Junge, ich versuchte die Welt Vorschläge für jeden Post für 5 Seiten von Google).Also gibt es meine erste Frage, gibt es eine Möglichkeit, faul holen One-to-One-Beziehung in JPA und Spring? (Weil die meisten Beiträge mehr als 2-3 Jahre alt sind).
Das andere Problem, das ich habe, ist im Begriff, eine JSON-Antwort in einer "dynamischen" Weise zu bauen. Ich habe einige Sachen mit Rails gemacht und war sehr glücklich mit
JBuilder
oder sogar derto_json
, die mir die Fähigkeit gegeben hat, die JSON-Antwort je nach Controller und meinen Bedürfnissen im Moment zu erstellen.Im Frühjahr habe ich die folgenden Lösungen:
Jackson @JsonView
(was nicht ganz mein Problem nicht lösen, weil die Antworten nicht, dass statische und ein Attribut sind, kann nicht auf mehrere Ansichten zugeordnet wird (soweit Ich habe das Konzept verstanden));- Einstellung auf Null-Attribute, die ich nicht auf die Antwort möchte (mit diesem, aber ich bin einfach zu hässlich und sieht aus wie eine falsche Walkthrough);
- oder Gebäude
HashMap
wie ich baue.json.jbuilder
auf Schienen (aber das tötet meine Leistung als manchmal hat es Beziehungen so vielefor
, um den JSON zu bauen, und auch das sieht aus wie eine hässliche Walkthrough).
Ich suche nach einigen Richtungen von jemandem, der eines Tages haben eines dieser Probleme, weil es bringt mich nicht in der Lage ist, so Probleme zu lösen, dass in meinem Kopf das nicht schwer sein sollte.
EDIT 1
bereits versucht optional = false
auf der @OneToOne
Anmerkung hinzuzufügen, um die Eager Last von OneToOne Beziehung zu lösen, wie @snovelli vorgeschlagen. Beispiel:
@OneToOne(optional=false, fetch = FetchType.LAZY)
public UserProfile getUserProfile(){ ... }
Ihre Frage enthält zwei unabhängige Fragen. Sie sollten eine auswählen und die andere in eine separate Frage extrahieren. Wie auch immer, dies ist die erste SO-Frage, in der ich zwei Antworten hinzugefügt habe. :) –
Ich dachte darüber nach, aber ich hatte einige Fragen wie diese, aber niemand antwortete, also postete ich diesen mit dem Wissen, dass ich ein Kopfgeld geben müsste, damit es beantwortet werden kann, und weil ich nicht zu viele Punkte habe um auf Bounties zu verschonen, lege ich die beiden in eine Frage :(Aber zumindest denke ich, das sind zwei Fragen, die jeder, der kein Assistent bei Spring und JPA ist, haben kann. – augustoccesar