一个聚合必须通过id引用其他聚合,例如:order stores userId。因此,如果我需要用户实体在订单聚合中执行某些操作,我应该像这样传递它:order.doSomthing(user)。但是,我应该在应用服务或域服务中检索用户?
答案 0 :(得分:0)
你没有。
聚合操作/仅依赖于它拥有的数据。这适用于写入但也适用于读取。
如果聚合(例如User
)需要来自另一个聚合的某些数据,例如Order
,那么应用程序服务(或最可能的Saga /进程管理器)将从{{{{}获取数据。 1}}并将其传递给Order
:
User