gpt4 book ai didi

design-patterns - 查询除根以外的聚合中的实体

转载 作者:行者123 更新时间:2023-12-03 23:37:17 26 4
gpt4 key购买 nike

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

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

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

搜索每个奥德,然后列出所有行并选择我感兴趣的行,听起来不切实际。 Orders 存储库中的 getLinesByProduct() 听起来更方便,但会从聚合中公开行。

我该如何建模这个查询?

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

最佳答案

Maybe the problem is that I'm querying my Command model and I should have a (denormalized) Query model on which details lines are entities with all the needed information?



这是完全正确的。 DDD 并不是为了解决查询问题,并且由于其各种约束和 ORM 强加的约束,经常会产生摩擦。查询,尤其是报告应分开处理。您可以使用 read-model pattern支持作为核心应用程序一部分的查询,或使用基于复制数据运行的完全独立的报告系统。

关于design-patterns - 查询除根以外的聚合中的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11755370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com