我正在构建一个ORM,并试图弄清楚每个模式的确切责任是什么。假设我想在两个账户之间转账,使用工作单元来管理在单个数据库事务中的更新。
以下方法是否正确?
1. 从存储库获取它们 2. 将它们附加到我的工作单元 3. 进行业务交易并提交?
示例:
应该像这个例子一样,独立使用工作单元和仓储,还是:
- 工作单元应该在内部使用仓储,并具有加载对象的能力吗? - ... 或者仓储应该在内部使用工作单元,并自动附加任何加载的实体吗?
以下方法是否正确?
1. 从存储库获取它们 2. 将它们附加到我的工作单元 3. 进行业务交易并提交?
示例:
from = accountRepository.find(fromAccountId);
to = accountRepository.find(toAccountId);
unitOfWork.attach(from);
unitOfWork.attach(to);
unitOfWork.begin();
from.withdraw(amount);
to.deposit(amount);
unitOfWork.commit();
应该像这个例子一样,独立使用工作单元和仓储,还是:
- 工作单元应该在内部使用仓储,并具有加载对象的能力吗? - ... 或者仓储应该在内部使用工作单元,并自动附加任何加载的实体吗?