【问题标题】:Use spring data repository instead of generated axon repository使用 spring 数据存储库而不是生成的轴突存储库
【发布时间】:2019-08-19 15:29:08
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: java spring-boot spring-data axon


    【解决方案1】:

    您对我的问题针对的是聚合的状态存储方法,而不是事件溯源方法。这在 Axon 框架中是完全可行的,在 Spring Boot 场景中也是如此。

    您只需将 Aggregate 标记为 @Entity 并将 @Id 添加到 aggregateIdentifier (或者您当然想成为 id 的其他字段)。 参考指南也有专门的部分,您可以找到here

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

    【讨论】:

    • 感谢您的回复,有没有办法禁用persist call?
    • 你绝对可以绕过它,尽管我不建议这样做。也许还有另一种方法可以解决您的问题。您是否介意详细说明为什么要在状态存储和事件源场景中禁用聚合的持久化?
    猜你喜欢
    • 2020-02-23
    • 2017-08-30
    • 2017-04-09
    • 2013-01-29
    • 1970-01-01
    • 2019-12-22
    • 2016-05-22
    • 1970-01-01
    • 2021-04-19
    相关资源
    最近更新 更多