我使用Spring Boot和Axon框架构建了一个使用CQRS的应用程序。我想使用自己的存储库将实体保留在数据库中,而不是轴突存储库中。我试图将EventSourcingHandlers提取到另一个类并在此处保存实体,仅让CommandHandlers聚合类。
我的问题是命令方法完成后,它会从轴突存储库中调用persist方法。命令方法完成后,可以禁用对持久性的轴突调用吗?
PS:我知道这不是使用轴突的正确方法,但这是我发现的解决方法
谢谢
答案 0 :(得分:1)
您的问题是针对汇总的状态存储方法,而不是事件源方法。在Spring Boot场景中,这在Axon Framework中也是完全可行的。
您只需要将聚合标记为@Entity
,然后将@Id
添加到aggregateIdentifier
(当然也可以将另一个字段作为ID)。
《参考指南》对此也有专门的章节,您可以找到here。
您所指的实际“持久性”调用不是@CommandHandler
方法的逻辑,而是在AggregateLifecycle#apply(Object)
方法内部的。