【发布时间】:2011-08-28 17:44:51
【问题描述】:
我正在构建一个 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();
应该像本例一样,独立使用工作单元和存储库,或者:
- 工作单元是否应在内部使用存储库并能够加载对象?
- ...或者存储库是否应该在内部使用工作单元并自动附加任何加载的实体?
欢迎所有的cmets!
【问题讨论】:
-
只是好奇,既然有好几个 ORM,为什么还要构建 ORM?
-
只是尝试将 ORM 最佳实践应用于 PHP。已经有一些,但与我的期望不完全相符。
-
感谢我发现了这样的问题 +1
标签: orm domain-driven-design repository-pattern unit-of-work domain-model