В dto запроса нужно получать лишь id сущностей агрегата, а дальше мапаешь dto в entity и сохраняешь в репозиторий.
Чтобы получить id сущностей, нужно сделать findBySomething (или выражаясь через sql, сделать SELECT), это можно делать, да. Но проблема появляется (или нет?!), когда я не знаю изначально id и не знаю записана ли вообще нужная мне сущность. Предположим есть структура данных Блюдо -> 1 ингредиент -> 1 категория. Я не знаю есть ли такой-то ингредиент в базе. Если его нету, то надо бы вставить новый ингредиент и по хорошему бы сделать вставку блюда, ингредиента, категории в одной транзакции.