Apri sessione in Visualizza modello

Sto facendo questa domanda dato i miei framework di sviluppo scelti di JPA (implementazione di Hibernate di), Spring, e .

Ho pensato un po ‘alle relazioni nel mio livello di entity framework – ad esempio, ho un’entity framework di ordine che ha molte righe di ordine. Ho configurato la mia app in modo che carichi con impazienza le righe dell’ordine per ogni ordine. Pensi che sia un modo pigro per aggirare i problemi di inizializzazione che mi verrebbe in mente se dovessi impostare la strategia di recupero su false?

Per come la vedo io, ho le seguenti alternative quando richiamo le entity framework e le loro associazioni:

  1. Utilizzare il modello Open Session In View per creare la sessione su ogni richiesta e confermare la transazione prima di restituire la risposta.

  2. Implementare un livello DTO (Data Transfer Object) in modo tale che ogni query DAO che eseguo restituisca il DTO correttamente inizializzato per i miei scopi. Non mi piace molto questa opzione, perché nella mia esperienza ho scoperto che crea molto codice di copia di codice e diventa difficile da mantenere.

  3. Non associare alcuna associazione in JPA in modo che ogni query che eseguo restituisca solo le entity framework a cui sono interessato – probabilmente mi richiederà comunque di avere DTO e sarà un problema da mantenere e penso che sconfigga lo scopo di avere un ORM innanzitutto.

  4. Recupera tutto (o la maggior parte delle associazioni) – nell’esempio sopra, recupera sempre tutte le righe degli ordini quando recupero un ordine.

Quindi la mia domanda è: quando e in quali circostanze useresti quale di queste opzioni? Ti attacchi sempre con un solo modo di farlo?

Vorrei chiedere ad un collega, ma penso che se avessi menzionato il termine “Open Session in View” sarei accolto con sguardi vuoti 🙁 Quello che sto cercando davvero qui è un consiglio da uno sviluppatore senior o molto esperto.

Grazie ragazzi!