D
Просто никто особо не мешает маппить в контроллере: сервис принимает/возвращает модель в рамках транзакционного метода, контроллер мапит модель. Присутствие managed jpa сущности в контроллере не обязательно при этом.
это необазтельно
>Внутри же основной логики работа идёт с доменной моделью.
Вот вы путаете, потому что считаете, что JPA Model == Domain Model. Но это не так. На самом деле Domain model, это совокупность всех ваших сервисов-интерфейсов и их реализаций + дто + репозитории/дао. Это Anemic Model. И для контроллера общение с моделью выглядит, как вызов апи сервиса и получение результата в виде DTO.
Паттерны эти гуглятся легко, у того же Фаулера, а в репах спринга можно найти примеры.
>Присутствие managed jpa сущности в контроллере не обязательно при этом.
у вас протекла скрытая часть доменной модели, к которой напрямую получил доступ веб-слой, это неправильно, так еще и проблемы с перфомансом и поддержкой кода доставляет.