Ще се опитам да отговоря на всички въпроси:
1.Да.
2.Не - Service-а трябва да работи на Entity модела върнат от Repository обекта.
3.Не – контролера трябва да ползва DTO. DTO- то трябва да съдържа полетата и анотациите за валидиране ( ако ползваш JSR303).
4.Да – DTO-тата се ползват в layer-a на контролера и трябва да излагат конструктор,който приема Entity модела. Преобразуването на Entity модела в DTO се случва в конструктора. По същия начин за Entity модела. Entity модела трябва да излага overload-нат контруктор, който приема DTO обект като аргумент. Преобразуването на DTO към Emnity модел трябва да става там.
5. Overload-натия конструктор на DTO (Entity модел като аргумент) и Entity модел (DTO като аргумент) са празнословни.