如何在 cassandra 中为 list<varchar> <-> 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));
我在 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));