无法使用cassandra驱动程序在Cassandra中存储base64图像数据
unable to store base64 image data in Cassandra using cassandra driver
我的客户端应用程序使用 base64
编码将图像数据发送到我的 controller
,我认为这是一个字符串。
我把json
解析成下面的case class
case class PQ(id: Option[UUID],
d: String,
h: List[String],
image: List[String],
s: String,
f:String,
t: Set[String],
t1: String,
a:String,
r:List[String])
在执行数据库查询时,我正在创建 insert
查询,如下所示
def insertValues(tableName:String, model:PQ):Insert = {
println(s"insert values are ${model}")
QueryBuilder.insertInto(tableName).value("id",model.id.get)
.value("a",model.a)
.value("d",model.d)
.value("f",model.f)
.value("h",seqAsJavaList(model.h))
.value("image",seqAsJavaList(model.image))
.value("r",model.r)
.value("s",model.s)
.value("t",setAsJavaSet(model.t))
.value("t1",model.t1)
.ifNotExists();
}
数据库架构是
(
id uuid PRIMARY KEY,
a text,
d text,
f text,
h list<text>,
image list<text>,
r list<text>,
s text,
t set<text>,
t1 text
)
但是我无法将数据保存到数据库中。我要插入的数据是
PQ(Some(11111111-1111-1111-1111-111111111111),some d,List(h),List(some image data),s test,f test,Set(t),some t1,some a,List(r1))
我收到以下错误
insert query is INSERT INTO p_q (id,a,d,f,h,image,r,s,t,t1) VALUES (?,?,?,?,?,?,?,?,?,?) IF NOT EXISTS;
cassandra exception com.datastax.driver.core.exceptions.InvalidTypeException: Value 6 of type class scala.collection.immutable.$colon$colon does not correspond to any CQL3 type
我检测到由于打印件中的 ?????
,某些东西正在破坏数据。
问题不在于 image
,而在于字段 r
。它被定义为 List
但我没有使用 seqAsJavaList
添加它。这正在腐蚀田地。我调试问题的方式可能对其他人有用。
我创建了个人 Insert
查询并打印了它们。它帮助我找到了导致损坏的 Insert
。
def insertValues(tableName:String, model:PracticeQuestion):Insert = {
println(s"insert values are ${model}")
val r1 = QueryBuilder.insertInto(tableName).value("question_id",model.question_id.get)
println(s"after id${r1}")
val r2 = r1.value("answer",model.answer)
println(s"after answer ${r2}")
val r3 = r2.value("description",model.description)
println(s"after desc ${r3}")
val r4 = r3.value("fail_test",model.fail_test)
println(s"after fail ${r4}")
val r5 = r4.value("hints",seqAsJavaList(model.hints))
println(s"after hints ${r5}")
val r6 = r5.value("references",seqAsJavaList(model.references))
println(s"after references ${r6}")
val r7 = r6.value("success_test",model.success_test)
println(s"after success ${r7}")
val r8 = r7.value("tags",setAsJavaSet(model.tags))
println(s"after tags ${r8}")
val r9 = r8.value("title",model.title)
println(s"after title ${r9}")
val r10 = r9.value("image",seqAsJavaList(model.image))
println(s"after image ${r10}")
r10
}
我的客户端应用程序使用 base64
编码将图像数据发送到我的 controller
,我认为这是一个字符串。
我把json
解析成下面的case class
case class PQ(id: Option[UUID],
d: String,
h: List[String],
image: List[String],
s: String,
f:String,
t: Set[String],
t1: String,
a:String,
r:List[String])
在执行数据库查询时,我正在创建 insert
查询,如下所示
def insertValues(tableName:String, model:PQ):Insert = {
println(s"insert values are ${model}")
QueryBuilder.insertInto(tableName).value("id",model.id.get)
.value("a",model.a)
.value("d",model.d)
.value("f",model.f)
.value("h",seqAsJavaList(model.h))
.value("image",seqAsJavaList(model.image))
.value("r",model.r)
.value("s",model.s)
.value("t",setAsJavaSet(model.t))
.value("t1",model.t1)
.ifNotExists();
}
数据库架构是
(
id uuid PRIMARY KEY,
a text,
d text,
f text,
h list<text>,
image list<text>,
r list<text>,
s text,
t set<text>,
t1 text
)
但是我无法将数据保存到数据库中。我要插入的数据是
PQ(Some(11111111-1111-1111-1111-111111111111),some d,List(h),List(some image data),s test,f test,Set(t),some t1,some a,List(r1))
我收到以下错误
insert query is INSERT INTO p_q (id,a,d,f,h,image,r,s,t,t1) VALUES (?,?,?,?,?,?,?,?,?,?) IF NOT EXISTS;
cassandra exception com.datastax.driver.core.exceptions.InvalidTypeException: Value 6 of type class scala.collection.immutable.$colon$colon does not correspond to any CQL3 type
我检测到由于打印件中的 ?????
,某些东西正在破坏数据。
问题不在于 image
,而在于字段 r
。它被定义为 List
但我没有使用 seqAsJavaList
添加它。这正在腐蚀田地。我调试问题的方式可能对其他人有用。
我创建了个人 Insert
查询并打印了它们。它帮助我找到了导致损坏的 Insert
。
def insertValues(tableName:String, model:PracticeQuestion):Insert = {
println(s"insert values are ${model}")
val r1 = QueryBuilder.insertInto(tableName).value("question_id",model.question_id.get)
println(s"after id${r1}")
val r2 = r1.value("answer",model.answer)
println(s"after answer ${r2}")
val r3 = r2.value("description",model.description)
println(s"after desc ${r3}")
val r4 = r3.value("fail_test",model.fail_test)
println(s"after fail ${r4}")
val r5 = r4.value("hints",seqAsJavaList(model.hints))
println(s"after hints ${r5}")
val r6 = r5.value("references",seqAsJavaList(model.references))
println(s"after references ${r6}")
val r7 = r6.value("success_test",model.success_test)
println(s"after success ${r7}")
val r8 = r7.value("tags",setAsJavaSet(model.tags))
println(s"after tags ${r8}")
val r9 = r8.value("title",model.title)
println(s"after title ${r9}")
val r10 = r9.value("image",seqAsJavaList(model.image))
println(s"after image ${r10}")
r10
}