[英]How to match codec in cassandra for list<varchar> <-> java.util.List
我在cassandra中有一个列info map<text, frozen<list<text>>>
。 尝试从下面的代码中以Java检索此地图数据。
for (Row row : conn.getSession().execute("SELECT info FROM demo.variants where chr = '" +chr + "' and pos = " + pos)) {
Map<String, List> map = row.getMap("info", String.class, List.class);
System.out.println(map);
}
这样做时,我得到了错误
com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [list<varchar> <-> java.util.List]
我不知道如何解决此嵌套类型的编解码器异常。 有什么方法可以解决这个问题?
我建议使用TypeTokens.listOf(TypeToken)
实用工具方法创建TypeToken<List<String>>
并将其用作检索地图的元素类型,即:
Map<String, List<String>> info = row.getMap("info", TypeToken.of(String.class), TypeTokens.listOf(String.class));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.