如何在 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
我可能弄乱了 Scala
和 Cassandra
中使用的数据类型,但我不知道如何更正这个问题。例如。我看到的一个问题是我不知道如何将 String
转换为字段 i
.
使用的 blob
我不得不使用 scala.collection.JavaConversions._
中的函数。工作代码片段是
.value("image",seqAsJavaList(model.image))
.value("tags",setAsJavaSet(model.tags))
我的 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
我可能弄乱了 Scala
和 Cassandra
中使用的数据类型,但我不知道如何更正这个问题。例如。我看到的一个问题是我不知道如何将 String
转换为字段 i
.
blob
我不得不使用 scala.collection.JavaConversions._
中的函数。工作代码片段是
.value("image",seqAsJavaList(model.image))
.value("tags",setAsJavaSet(model.tags))