使用Spring数据存储库而不是生成的轴突存储库

时间:2019-08-19 15:29:08

标签: java spring-boot spring-data axon

我使用Spring Boot和Axon框架构建了一个使用CQRS的应用程序。我想使用自己的存储库将实体保留在数据库中,而不是轴突存储库中。我试图将EventSourcingHandlers提取到另一个类并在此处保存实体,仅让CommandHandlers聚合类。

我的问题是命令方法完成后,它会从轴突存储库中调用persist方法。命令方法完成后,可以禁用对持久性的轴突调用吗?

PS:我知道这不是使用轴突的正确方法,但这是我发现的解决方法

谢谢

1 个答案:

答案 0 :(得分:1)

您的问题是针对汇总的状态存储方法,而不是事件源方法。在Spring Boot场景中,这在Axon Framework中也是完全可行的。

您只需要将聚合标记为@Entity,然后将@Id添加到aggregateIdentifier(当然也可以将另一个字段作为ID)。 《参考指南》对此也有专门的章节,您可以找到here

您所指的实际“持久性”调用不是@CommandHandler方法的逻辑,而是在AggregateLifecycle#apply(Object)方法内部的。