Axon - 如何将@QueryHandler handle 方法获取到 return a k,v Map

Axon - How to get @QueryHandler handle method to return a k,v Map

我需要 return k,v 映射

Map<String,UserProfile>

类似于我查询列表的方式。

queryGateway.query(q, ResponseTypes.multipleInstancesOf(UserProfile.class)

这适用于 return 地图的处理程序。

@QueryHandler
Map<String, UserProfile> handle(UserProfileQuery query) {
    return userProfileRepository.getUserProfiles(query.getUserIds());
}

使用 Axon 4.2

目前(即框架的 4.3.1 版),Stephen 的答案相当简单。 您不能直接从 @QueryHandler 注释函数中 return Map<K, V>。 目前这是 Axon Framework 的 GitHub 页面上的一个问题,您可以在 here.

上找到该页面

目前最实用的解决方案是提供一个包装器 class,其中包含您想要 return 的 Map<K, V>。 或者,您可能正在寻找 条目 Collection,因为您建议使用 ResponseTypes#multipleInstancesOf(Class) 函数。 在这种情况下,您必须自己创建 entry 对象。

希望对您有所帮助!