如何在 Cassandra 中添加 Scala 列表或集合?

How to add a Scala List or Set in Cassandra?

我的 Cassandra 的 table 模式是

    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: Value 3 of type class scala.collection.immutable.$colon$colon does not correspond to any CQL3 type

我可能弄乱了 ScalaCassandra 中使用的数据类型,但我不知道如何更正这个问题。例如。我看到的一个问题是我不知道如何将 String 转换为字段 i.

使用的 blob

我不得不使用 scala.collection.JavaConversions._ 中的函数。工作代码片段是

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