Come evitare LazyInitializationException utilizzando Hibernate e Jersey

1

Sto lavorando con Spring Boot + Jersey + JPA / Hibernate per creare un'API RESTful. Il problema che sto incontrando in questo momento è quando ho una relazione nella mia Entità JPA che è pigro caricato. Ottengo un'eccezione di carico pigro quando Jersey va a serializzare l'oggetto. La mia domanda è qual è il modo migliore per evitare questo / best practice.

Mi rendo conto che potrei semplicemente fare FetchType.EAGER ma sembra una pessima idea costruire un enorme oggetto grafico che potrebbe non essere necessario.

Ho pensato di utilizzare il pattern DTO, ma sembra una grande quantità di codice, quindi non sono sicuro di voler seguire questa rotta a meno che non sia la migliore opzione.

Potrei passare a EclipseLink perché, a quanto ho capito, non soffre del carico Lazy, nessun problema di sessione Hibernate come fa Hibernate.

L'altra opzione che ho pensato è stata quella di mettere @JsonIgnore su tutte le proprietà lazy load e fare un altro endpoint API per recuperare quella proprietà. Ad esempio, supponiamo che una persona abbia molti indirizzi, se gli utenti finali desiderano che gli indirizzi debbano richiedere / persona / indirizzi

Qual è il modo migliore per gestire questo problema e perché? Alla fine della giornata questa API si interfaccia con un'applicazione AngularJS. L'applicazione sarà di dimensioni abbastanza buone. Il database che esegue il backup ha 80-90 tabelle.

    
posta jkratz55 04.10.2015 - 21:14
fonte

1 risposta

0

Ti consiglio vivamente di utilizzare il modello DTO poiché hai un modello grande. Il motivo è che utilizzando il modello DTO è possibile avere una separazione netta tra il modello di dominio e gli oggetti di servizio. In altri casi non avrai un livello / spazio per gestire possibili cambiamenti futuri nelle entità del tuo dominio o nei requisiti del servizio e quelle modifiche probabilmente interromperanno i tuoi servizi esistenti.

    
risposta data 04.10.2015 - 22:31
fonte

Leggi altre domande sui tag