【问题标题】:How to add a Scala List or Set in Cassandra?如何在 Cassandra 中添加 Scala 列表或集合?
【发布时间】:2018-12-04 06:21:14
【问题描述】:

我的 Cassandra 的表架构是

    id uuid PRIMARY KEY,
    a text,
    d text,
    h list<text>,
    i  list<blob>,
    p  text,
    t set<text>,
    title text

我想从以下case class添加数据

Data(Some(b7a8bc92-0191-4d76-9c11-df8301e20911),d,List(d),List(1),d,Set(d),d,d)

为了添加数据,我写了如下QueryBuilder代码

def insertValues(tableName:String, model:Data):Insert = {
    QueryBuilder.insertInto(tableName).value("id",model.id.get) 
      .value("a",model.a)
      .value("d",model.d)
      .value("h",model.h) 
      .value("i",model.i)
      .value("p",model.p)
      .value("t",model.t)
      .value("title",model.title)
      .ifNotExists(); 
  }

但我收到以下错误:

Errorcom.datastax.driver.core.exceptions.InvalidTypeException:类型类 scala.collection.immutable.$colon$colon 的值 3 不对应于任何 CQL3 类型

我可能在ScalaCassandra 中使用的数据类型之间搞混了,但我不知道如何解决这个问题。例如。我看到的一个问题是我不知道如何将String 转换为blob 字段使用的i

【问题讨论】:

    标签: scala cassandra datastax-java-driver playframework-2.6


    【解决方案1】:

    我不得不使用来自scala.collection.JavaConversions._ 的函数。工作代码 sn -p 是

      .value("image",seqAsJavaList(model.image))
      .value("tags",setAsJavaSet(model.tags))
    

    【讨论】:

    猜你喜欢
    • 2019-05-21
    • 2017-07-27
    • 2016-04-09
    • 2020-05-26
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    相关资源
    最近更新 更多