发布于 2022-01-25 10:28:26
如果要求实体是单独的集合,则需要从父级到子级维护引用表。
Axon提供的从父聚合创建子集合的支持是为了确保框架使用单个事务来发布多个事件。Axon绝不自动为您存储关系。
相反,所有这些都应该在Aggregates的事件流中知道。考虑到这一点,结合事件源,您可以在Aggregates中获取任何形式的数据。
回到级联删除场景:我实际上已经就此事与Jakob进行了直接接触。在他的例子(可能也是你的例子)中,我们最终得到了一个“聚合到孩子的集合”模型,该模型专门用于保留引用。在从父聚合中删除时(在任何级别上),都会引用此模型,以确保删除正确的子集合。注意,所有这些都是自定义代码。
此外,这个aggregateId-to-childAggregateIds模型可以被看作是命令模型的一部分(假设您的目标是应用CQRS)。因此,它纯粹是用来推动决策的。在这种情况下,决策是决定向哪个子节点发送删除命令。
因此,概括地说:
aggregateId-to-childAggregateIds模型为,而不是存储整个聚合实例。你根本不需要所有的数据来决定删除谁。子程序的聚合标识符应该足够了。https://stackoverflow.com/questions/70839046
复制相似问题