我正在构建一个 ORM,并尝试找出每种模式的确切职责。假设我想在两个帐户之间转移资金,使用工作单元来管理单个数据库事务中的更新。以下方法是否正确?
- 从存储库中获取它们
- 将它们附加到我的工作单元
- 进行业务交易并提交?
例子:
from = acccountRepository.find(fromAccountId);
to = accountRepository.find(toAccountId);
unitOfWork.attach(from);
unitOfWork.attach(to);
unitOfWork.begin();
from.withdraw(amount);
to.deposit(amount);
unitOfWork.commit();
应该像本例一样,独立使用工作单元和存储库,或者:
- 工作单元是否应该在内部使用存储库并能够加载对象?
- ...或者存储库应该在内部使用工作单元并自动附加任何加载的实体?
欢迎所有评论!