gpt4 book ai didi

axon - 如何使用 Axon 框架获取所有聚合?

转载 作者:行者123 更新时间:2023-12-02 01:06:35 28 4
gpt4 key购买 nike

我刚开始使用 Axon 框架,但遇到了一些障碍。

虽然我可以使用它们的 ID 加载单个聚合,但我不知道如何获取所有聚合的列表或所有聚合 ID 的列表。

EventSourcingRepository 类只有 load() 方法返回一个聚合。

有没有办法获取所有聚合(ID),或者我是否应该在轴突之外保留所有聚合 ID 的列表?

为了简单起见,我现在只使用 InMemoryEventStorageEngine。我正在使用 Axon 3.0.7。

最佳答案

首先,我想知道为什么您要从 Repository 中检索所有聚合的完整列表。Repository 接口(interface)设置为您可以加载 Aggregate 来处理命令或创建新的 Aggregate

问你的问题,我几乎猜你是用它来查询而不是命令处理。然而,这不是 EventSourcingRepository 的预期用途。

我能想到的一个你想要这个的原因是,你想要实现一个 API 调用,以将命令发布到应用程序中特定类型的所有 Aggregates。如果是那种情况,那么是的,您需要自己存储 aggregateId 引用。

但总结一下我之前的问题:为什么要通过 Repository 接口(interface)检索聚合列表?

答案更新

关于您的评论,我已将以下内容添加到我的回答中:

Axon 帮助您在设置应用程序时考虑到事件源,同时也考虑了 CQRS(命令查询责任分离)。因此,这意味着应用程序的命令端和查询端是​​分开的。

聚合 Repository 是应用程序的命令端,您可以在其中请求执行操作。因此它不提供聚合列表,因为命令是对a 聚合的意图表达。因此它只需要 Repository 用户检索一个聚合或创建一个聚合。

您所需要的聚合列表示例是应用程序的查询端。查询端(您的 View /实体)通常根据事件(通过事件获取)进行更新。对于应用程序中的任何查询要求,您通常会引入一个根据您的需要量身定制的单独 View 。

在您的示例中,这意味着您将引入一个事件处理组件,监听您的聚合事件,它使用聚合的查询模型更新存储库。

关于axon - 如何使用 Axon 框架获取所有聚合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47258755/

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