Axon - Как получить метод дескриптора @QueryHandler для возврата ak, v Map - PullRequest
0 голосов
/ 24 марта 2020

Мне нужно вернуть ak, v map

Map<String,UserProfile>

Аналогично тому, как я запрашиваю Список.

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

Это работает с обработчиком, который возвращает карту.

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

Использование Axon 4.2

1 Ответ

3 голосов
/ 25 марта 2020

На данный момент (имеется в виду версия 4.3.1 фреймворка), ответ довольно прост, Стивен. Вы не можете вернуть Map<K, V> напрямую из аннотированной функции @QueryHandler. В настоящее время это проблема на странице Axit Framework GitHub, которую вы можете найти здесь .

На данный момент большинство прагматических решений c состоит в предоставлении класса-оболочки, содержащего Map<K, V>, который вы хотите возвращаться. Или, скорее всего, Collection из записей - это то, что вы ищете, поскольку вы предлагаете использовать функцию ResponseTypes#multipleInstancesOf(Class). Это запись объект, который вы должны создать сами в этом случае.

Надеюсь, это поможет!

...