Sto sviluppando un progetto relativamente grande utilizzando Spring Boot e, in generale, sono abbastanza soddisfatto, ma sto riscontrando alcuni problemi nella mia mente non dovrebbe essere un problema.JPA One-To-One pigro e costruzione "dinamica" JSON
Prima di tutto, Relazione One-To-One. È frustrante che non funzioni come dovrebbe (almeno nella mia mente).
Ho due entità,
User
eUserProfile
, ad esempio. Hanno una relazione One-To-One, ma la maggior parte delle volte ho solo bisogno dei datiUser
, ma recupera (non importa quello che provo, e oh ragazzo, ho provato i suggerimenti del mondo su ogni post per 5 pagine di Google).Quindi c'è la mia prima domanda, c'è un modo per essere in grado di recuperare pigro relazione One-To-One in JPA e Spring? (Perché la maggior parte dei post ha più di 2-3 anni).
L'altro problema che ho è in procinto di costruire una risposta JSON in modo "dinamico". Ho fatto alcune cose usando Rails e sono stato molto contento di
JBuilder
o anche delloto_json
che mi ha dato la possibilità di costruire la risposta JSON a seconda del controller e delle mie esigenze al momento.In primavera ho visto le seguenti soluzioni:
Jackson @JsonView
(che non risolve del tutto il mio problema perché le risposte non sono così statico e un attributo non possono essere assegnati a viste multiple (per quanto riguarda Ho capito il concetto));- impostazione su attributi nulli che non voglio sulla risposta (utilizzando questo, ma è troppo brutto e sembra una soluzione sbagliata);
- o edificio
HashMap
come io costruisco.json.jbuilder
su Rails (ma questo uccide la mia prestazione come a volte ha relazioni così un sacco difor
per costruire il json, e anche questo sembra un brutto walkthrough).
Sto cercando alcune direzioni da qualcuno che un giorno potrebbe aver incontrato uno di questi problemi perché è uccidere me non essere in grado in modo da risolvere i problemi che nella mia mente non dovrebbe essere così difficile.
EDIT 1
già tentato di aggiungere optional = false
sul @OneToOne
annotazioni per risolvere il carico Desideroso di relazione OnetoOne come @snovelli suggerito. Esempio:
@OneToOne(optional=false, fetch = FetchType.LAZY)
public UserProfile getUserProfile(){ ... }
La tua domanda contiene due domande non correlate. Dovresti sceglierne uno e estrarre l'altro in una domanda separata. Ad ogni modo, questa è la prima domanda SO in cui ho aggiunto due risposte. :) –
Ci ho pensato, ma ho avuto alcune domande come questa, ma nessuno ha risposto, quindi ho postato questo sapendo che avrei dovuto mettere una taglia in modo che potesse essere risolta, e dato che non ho troppi punti per risparmiare su taglie, ho messo i due in una domanda :(Ma almeno penso che queste siano due domande che potrebbero non avere tutti quelli che non sono maghi a Spring e JPA. – augustoccesar