Я строю ORM и пытаюсь выяснить, каковы точные обязанности каждого шаблона. Скажем, я хочу перевести деньги между двумя учетными записями, используя Unit of Work для управления обновлениями в одной транзакции с базой данных. Правилен ли следующий подход?
- Получить их из репозитория
- Прикрепите их к моему модулю работы
- Выполнять ли транзакцию и совершать транзакции?
Пример:
from = acccountRepository.find(fromAccountId);
to = accountRepository.find(toAccountId);
unitOfWork.attach(from);
unitOfWork.attach(to);
unitOfWork.begin();
from.withdraw(amount);
to.deposit(amount);
unitOfWork.commit();
Должно, как и в этом примере, Единица работы и Репозиторий использоваться независимо или:
- Должна ли Единица работы внутренне использовать репозиторий и иметь возможность загружать объекты?
- ... или если репозиторий использует внутреннюю единицу работы и автоматически присоединяет любой загруженный объект?
Все комментарии приветствуются!