Sto sviluppando una semplice webapp che espone il modello di dominio come risorse RESTful. Sto pianificando di utilizzare JPA2 (Hibernate) con il supporto REST di SpringMVC.Esiste un modo per esporre le entità di ibernazione come risorse RESTful senza DTO?
Durante il marshalling delle entità di Hibernate in XML/JSON, se l'entità è scollegata, genera LazyLoadingException per le associazioni di figli pigri. Se l'entità è ancora collegata a Hibernate Session, caricherà quasi tutto il database.
Ho provato a utilizzare Dozer CustomFieldMapper per determinare se la proprietà è Hibernate Collection pigro che non viene caricata, quindi restituisce NULL.
Ma se ci sono associazioni bidirezionali, Hibernate carica con impazienza il numero di uno su One e Dozer proverà a copiare le proprietà che finiranno nel loop infinito con conseguente errore StackOverflow.
L'unico intervento che so per risolvere questo problema è l'utilizzo di DTO e la copia delle proprietà richieste solo in POI (DDO) puliti e in marshalling in XML/JSON. Ma è terribilmente doloroso per il modello di dominio complesso copiare le proprietà manualmente.
C'è qualche altro modo pulito/più semplice per (un) marshall Entità di ibernazione?
Utilizzato il codice menzionato nell'articolo, funzionante. Ma ha bisogno di testare vari tipi di relazioni. Grazie. I DTO –