Как получить доступ к списку с вложенными картами с помощью Cassandra Java Driver - PullRequest
0 голосов
/ 07 мая 2020

У меня проблемы с получением списка, включающего карты с Cassandra Java Driver.

Для версии ниже:

List<Map<Integer, Integer>> myList = state.getList(5, TypeTokens.mapOf(Integer.class, Integer.class));

Ошибка выглядит примерно так:

InvalidRequest: Error from server: code=2200 [Invalid query] message="Java source compilation failed: Line 3: TypeTokens cannot be resolved"

А для версии, как показано ниже:

List<Map<Integer, Integer>> myList = state.getList(5 , Map.class);

Ошибка это как:

InvalidRequest: Error from server: code=2200 [Invalid query] message="Java source compilation failed: Line 3: Type mismatch: cannot convert from List<Map> to List<Map<Integer,Integer>>

И для последней версии, как показано ниже:

List<Map> myList = state.getList(5, Map.class);

Компилятор не жалуется, но когда я выполняю агрегирование, ошибка выглядит примерно так:

FunctionFailure: Error from server: code=1400 [User Defined Function failure] message="execution of 'my_keyspace.count_min_udf[count_min_udt, int, int, text]' failed: com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [frozen<map<int, int>> <-> java.util.Map]"

state - это UDT, определяемый как:

CREATE TYPE count_min_udt(
  n int,
  m int,
  p bigint,
  hash_a list <bigint>,
  hash_b list <bigint>,
  values list<frozen <map<int, int>>>
);

Я неправильно их использую? Буду признателен за помощь

1 Ответ

0 голосов
/ 09 мая 2020
...