我知道,按照Axon的工作方式,主题行没有意义,但这是我的问题:
我需要创建一个新的聚合实例“ Quote”,该实例与记录的后端系统相关联。也就是说,聚合ID必须最终与后端系统中分配的ID相匹配。
因此,我的uiServer应用程序正在调用commandGateway并向其发送CreateQuoteCmd,但我不知道作为目标聚合ID传递的内容,因为该ID将来自命令处理程序调用的后端系统。uiServer无法分配quoteId。CreateQuoteCmd的命令处理程序与我们的后端系统联系,以获取新的quoteId。后端系统还提供了几个默认值,这些默认值将被放入聚合中。
那么,如何使那个quoteId成为聚合的ID?
在命令对象中作为目标集合ID传递什么?
是真的,我必须在CreateQuoteCmd中传递目标集合ID,而不是允许对象在与后端系统通信后在命令处理程序中设置其自己的ID?谢谢你的帮助。
将创建聚合的命令不倾向于具有带@TargetAggregateIdentifier
注释的字段。这是作为“目标聚合标识符”的字段保持的,不能指向现有聚合,因为该命令将是聚合的起点。
聚合标识符的创建可以在系统中的多个地方进行,并且完全取决于您。
不过,重要的部分是,@CommandHandler
聚合中带注释的构造函数具有返回值,这是您已分配给该聚合的聚合标识符。
因此,在调度时,应处理CommandGateway
/给出的结果。这应该包含您已分配给(我假设)汇总的。CommandBus
CreateQuoteCmd
QuoteId
Quote
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句