gpt4 book ai didi

axon - 聚合和消息是否需要 Axon 中的 hashCode 和 equals?

转载 作者:行者123 更新时间:2023-12-01 04:30:57 25 4
gpt4 key购买 nike

是否有必要向 Axon 聚合和消息添加(覆盖)hashCode 和 equals 方法? SonarQube 中的分析表明,在对这些实体执行标准 Axon 操作时(在端到端测试中),它们没有被使用。此外,在调试期间,似乎也没有达到 equals 和 hashCode 方法。

最佳答案

正确的观察有瓦迪姆。
从 Axon 的角度来看,只有一个地方需要添加 equals()。函数,它是一个聚合成员,包含在聚合(根)上的列表中。
axon-test模块的FixtureConfiguration将在处理命令之前和之后匹配聚合,以确保命令处理程序中的状态没有改变。轴突使用深场比较,除非 equals()提供了方法。实体列表将错误地匹配实体,因为如果没有 equals() 将使用对象引用提供。因此,您放置在列表/集合/ map 中的“聚合成员”需要具有 equals() 的实现。功能。

请注意,这实际上并不理想。实体不应该是可互换的,因为它们从根本上不是由它们的属性(如值对象和消息)定义的,而是由它们的身份和连续性线程定义的。这是一个已知的警告,axon-test模块计划应付一天。

因此,简短地回答您的问题:
对于测试来说,两者兼而有之是公平的,但在实时系统上则没有必要。

关于axon - 聚合和消息是否需要 Axon 中的 hashCode 和 equals?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54222568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com