0

假设我有一个现有的聚合CustomAggregate和一个CustomEvent由聚合处理的事件。

一段时间后,事件存储已经包含此聚合的一些事件,我需要将聚合和事件重命名为NewCustomAggregateand NewCustomEvent。我更新了重命名事件的修订并创建了一个相应的处理事件重命名的 upcaster。

type作为事件存储的表中仍然指的是CustomAggregate. 因此,当我尝试像这样获取新聚合类型的所有事件时

eventStore.readEvents("NewCustomAggregate", id);

我(显然)得到一个异常,说这个聚合类型没有事件。

有没有办法不仅考虑上转换中重命名/更改的事件,而且还考虑到对于某些事件修订,事件存储应该将NewCustomAggregate类型视为CustomAggregate

我使用的 Axon 版本是 2.4.6。

4

1 回答 1

3

在 Axon 2 中,您不能向上转换任何不在事件本身有效负载中的信息。相反,您必须直接在数据库中更改聚合类型。

一点背景:Axon 2 使用此列来检索特定聚合的事件(连同聚合标识符)。如果这是使用 upcaster 更新的,数据库将无法将类型与任何事件匹配。所以基本上,改变表中的值是你最好的选择。

于 2018-02-08T14:48:43.517 回答