无法从cassandra读取地图

无法从cassandra读取地图,cassandra,cql,datastax-java-driver,Cassandra,Cql,Datastax Java Driver,我正在我的一张表格中使用map,如下所示: media map<UUID, frozen<map<int, varchar>>> 媒体地图 虽然我能够成功地插入/更新此地图,但无法从中读取 我正在使用datastax java驱动程序3.0.0 到目前为止,我已经尝试过: Map<UUID, Map> media = row.getMap("media", UUID.class, Map.class); Map media=row.getM

我正在我的一张表格中使用map,如下所示:

media map<UUID, frozen<map<int, varchar>>>
媒体地图
虽然我能够成功地插入/更新此地图,但无法从中读取

我正在使用datastax java驱动程序3.0.0

到目前为止,我已经尝试过:

 Map<UUID, Map> media = row.getMap("media", UUID.class, Map.class);
Map media=row.getMap(“media”,UUID.class,Map.class);
但这一行给出了以下例外情况:

 com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [map<int, varchar> <-> java.util.Map]
com.datastax.driver.core.exceptions.codeconotfoundexception:未找到请求操作的编解码器:[map java.util.map]

如何读取此字段?

您正在尝试使用
GettableByNameData.getMap(字符串、类、类)
方法。相反,要获得像
Map
这样的复杂数据类型,可以使用
GettableByNameData.getMap(String,TypeToken,TypeToken)
方法

import com.google.common.reflect.TypeToken;

TypeToken uuidToken = new TypeToken<UUID>() {};
TypeToken mapToken = new TypeToken<Map<Integer, String>>() {};

Map<UUID, Map<Integer, String>> media = row.getMap("media", uuidToken, mapToken);
import com.google.common.reflect.TypeToken;
TypeToken uuidToken=新的TypeToken(){};
TypeToken mapToken=新的TypeToken(){};
Map media=row.getMap(“media”、uuidToken、mapToken);