【问题标题】:Codec not found for requested operation: [frozen<ynapanalyticsteam.ynapnestedmap> <-> java.util.Map<java.lang.String, java.lang.String>]未找到请求操作的编解码器:[frozen<ynapanalyticsteam.ynapnestedmap> <-> java.util.Map<java.lang.String, java.lang.String>]
【发布时间】:2018-10-16 10:51:05
【问题描述】:

我正在使用 Java 驱动程序处理 Cassandra 的数据检索部分。

我有一个自定义数据类型

CREATE TYPE ynapanalyticsteam.ynapnestedmap (
so_nestedmap map<text, text>

);

列类型映射如下

order_line map<text, frozen<ynapnestedmap>>

我正在尝试使用 TypeToken 检索此列的值,如下所示。

row.getMap("order_line", TypeToken.of(String.class), new TypeToken<Map<String,String>>() {});

但我仍然收到 codecNot found 异常。

【问题讨论】:

    标签: java cassandra codec datastax-java-driver user-defined-types


    【解决方案1】:

    您需要为嵌套的用户定义类型定义编解码器,而不是为Map&lt;String, String&gt; - 它们是不同的类型...

    documentation for java driver 很好地描述了这个过程。

    您尝试使用的代码将用于定义列,例如:

    order_line map<text, frozen<map<text, text>>>
    

    【讨论】:

    • 您好,非常感谢您的意见。这有帮助。我能够创建 UDT 并在编解码器中注册。
    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 2017-03-24
    • 2020-02-27
    • 2017-02-16
    • 2019-05-27
    • 2017-04-07
    • 2018-06-08
    • 2018-01-06
    相关资源
    最近更新 更多