Korzystając ze Spring MVC zwykle widzimy warstwę kontrolera, usługi i repozytorium. Warstwa repozytorium używa modelu encji, który jest odwzorowaniem jeden na jeden z bazą danych. Myślałem o następujących -Architektura MVC Odwzorowanie/konwersja modelu/modelu
- Czy warstwa usługi ma korzystać z tego samego modelu encji?
- Czy warstwa usług powinna korzystać z oddzielnego modelu domeny? Jeśli tak, to odwzorowanie "do"/"do przodu" powinno być wykonane w warstwie serwisowej?
- Czy w przypadku warstwy kontrolera używamy tego samego modelu domeny?
- Czy warstwa kontrolera powinna korzystać z oddzielnego modelu DTO? Jeśli tak, to odwzorowanie "do"/"do" należy wykonać w warstwie sterownika?
- Czy mamy jakiś prosty sposób na mapowanie bez pisania zbyt obszernego kodu? W przeszłości używałem Dozer kilka razy.
To pytanie mogło zostać zadane, ale nie mogłem go znaleźć. Przepraszam za duplikat pytania.
> Model encji powinien również wystawiać przeciążony konstruktor, który akceptuje obiekt DTO jako argument Co zrobić, jeśli mój podmiot ma zależne elementy (tj. Związek jeden-do-wielu)? W DTO mogę przechowywać ich odpowiednie identyfikatory, ale konwersja DTO -> Entity będzie wymagać pobrania podsieci przez te identyfikatory. Jaka jest zaakceptowana metoda obsługi tego? –
W takim przypadku utwórz obiekt fabryczny, który będzie zarządzał tworzeniem i konwersją DTO do modelu jednostki. Możesz wprowadzić swoje usługi do tego obiektu fabryki, aby znaleźć obiekty według ich identyfikatora. – Bnrdo