Uso DataNucleus come implementazione JPA per memorizzare le mie classi nella mia applicazione web. Io uso un set di convertitori che hanno tutti toDTO()
e fromDTO()
.Conversione entità a DTO con JPA
Il mio problema è che voglio evitare tutto il DB di essere inviati attraverso la rete:
- se carico pigro, il convertitore cercherò di accedere a tutti i campi, e caricare poi (con conseguente molto caricamento avido).
- Se non carico pigro, otterrò una parte enorme del DB, poiché l'utente contiene gruppi e gruppi contiene utenti e così via.
C'è un modo per caricare esplicitamente alcuni campi e lasciare gli altri come NULL nella mia classe caricata? Ho provato i documenti DataNucleus senza fortuna.
Vuoi dire, una serie di DTO da utilizzare per ciascuna vista? Come un utente senza campo "gruppi" da inviare alla vista che non ha bisogno di conoscere i gruppi dell'utente e così via? – WhyNotHugo
Dipende davvero dalla tua applicazione e da come la stai architettando. Parli del fatto che si tratta di un'applicazione Web, ma nello stesso tempo sei preoccupato per le cose inviate via cavo. Quale filo? Il cavo tra l'appserver e il database o il filo logico tra la vista e il livello modello/controller o il filo tra una chiamata AJAX del browser e il server? –
Principalmente, il cavo tra browser e server, ma vorrei anche ridurre i dati del server DB <-> java trasmesso ... Immagino che il caricamento lazy e l'utilizzo di un dto per view funzioni, dal momento che quando si converte il modello in , Non accidentalmente caricherò i dati inutili e invierò solo ciò di cui ha bisogno la vista. È più lavoro (molte più lezioni) ma non vedo scelta. Grazie. – WhyNotHugo