繁体   English   中英

如何在Cassandra中匹配编解码器以获得列表 <varchar> &lt;-&gt; java.util.List

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM