Допустим у меня есть готовое решение без UoW.
Вот при вызове store там происходит следующее:
1. Открывается транзакция и управление потоком сохранения передаётся в рекурсивную функцию.
2. Функция принимает сущность, получает её связи и делит их на два типа: "мастер" т.е сущности от которых зависима наша сущность и "слэйв" т.е сущности которые зависят от нашей сущности.
3. Функция рекурсивно обходит все связи и отправляет их в БД. Сначала вверх по иерархии, а потом вниз для каждой делая все операции начиная с шага 2. Таким образом у нас отпадает нужда в топологической сортировке.
4. Выполняется транзакция. Если что-то пошло не так при вставке каких то данных, то выполняется rollback всего и выбрасывается исключение.
Примерно то же происходит при вызове метода remove.
Теперь я хочу понять, зачем здесь может быть нужен UoW?
Есть ли какие-то однозначные полезности, ради которых стоит вот эти моменты переписать на UoW.