查询除根之外的聚合中的实体

时间:2012-08-01 08:26:21

标签: design-patterns repository domain-driven-design

在DDD的上下文中,总是说存储库必须只查询聚合根。聚合根然后可以访问聚合中的其他实体。但是,如何对聚合内的实体进行查询建模?

假设Orders汇总的情况。订单是根,并有一个详细的行列表,它引用一个产品(它是另一个聚合的根)并具有其他属性,如数量

现在,假设我需要列出或订购引用特定产品的行,以生成不同服务使用的报告,例如计算产品订单所请求的平均项目数。

搜索每个Oder,然后列出所有行并选择我感兴趣的行,听起来不切实际。 Orders存储库中的getLinesByProduct()听起来更方便,但会将线暴露出Aggregate。

如何为此查询建模?

也许问题是我正在查询我的Command模型,我应该有一个(非规范化的)查询模型,其中详细信息行是具有所有所需信息的实体?

0 个答案:

没有答案