Codecs UDT在Cassandra

时间:2018-04-06 13:29:02

标签: scala cassandra datastax datastax-java-driver

我在Cassandra有一张桌子和地图

我已将MyUDT定义为Scala中的案例类并尝试阅读它。当我将它保存到Cassandra时,它可以工作,但后来,我想用驱动程序阅读它,我有一些问题。

我正在尝试这样做:

 val result = session.execute(s"select ls_my_udt from ks.myTable  WHERE id = 0")
 val queryConContrato = result.one().getMap[String, MyUDT]("ls_my_udt ", classOf[String], classOf[MyUDT])

当我执行此查询时,出现错误:

com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [frozen<ks.myudt> <-> com.MyUDT]

    at com.datastax.driver.core.CodecRegistry.notFound(CodecRegistry.java:679)

我的TYPE是:

CREATE TYPE MyUDT (
id text,
field text
);

我的案例类是:

如果我不公布案例类

,这是错误
java.lang.IllegalArgumentException: @UDT annotation was not found on class com.MyUDT

我的案例类

@UDT(keyspace="ks", name="myUDT")
case class ProductUDT(id: String,
                      field: String )

0 个答案:

没有答案