Usando Spring MVC, normalmente vediamo il livello Controller, Service e Repository. Il livello di repository utilizza il modello di entità che è l'associazione uno a uno con il database. Ho pensato di seguito -Architettura MVC DTO/Mappatura/conversione modello
- Il livello di servizio deve utilizzare lo stesso modello di entità?
- Il livello di servizio deve utilizzare un modello di dominio separato? Se sì, la mappatura di andata e ritorno dovrebbe essere effettuata nel livello di servizio?
- Nel caso del livello Controller si utilizza lo stesso modello di dominio?
- Il livello controller deve utilizzare un modello DTO separato? Se sì, la mappatura di andata e ritorno dovrebbe essere fatta nel livello Controller?
- Abbiamo un modo semplice per eseguire la mappatura senza scrivere troppo codice dettagliato? Ho usato Dozer poche volte in passato.
Questa domanda potrebbe essere stata chiesta ma non ho trovato. Quindi scusami per una domanda doppia.
> Il modello di entità dovrebbe anche esporre un costruttore sovraccarico che accetta l'oggetto DTO come argomento Cosa succede se la mia entità ha entità dipendenti (cioè una relazione uno-a-molti)? In DTO, potrei memorizzare i rispettivi ID, ma la conversione DTO -> Entity richiederà il recupero di sottoentità da quegli ID. Qual è il metodo accettato per gestirlo? –
In tal caso, creare un oggetto factory che gestirà la creazione e la conversione di DTO nel modello Entity. È possibile iniettare i propri servizi su questo oggetto factory per trovare gli oggetti con il loro id. – Bnrdo