无法使用cassandra驱动程序将base64图像数据存储在Cassandra中

Manu Chadha

我的客户端应用程序controller使用base64我认为是字符串的编码将图像数据发送给我

我将其解析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
Manu Chadha

我检测到由于?????打印而使数据损坏

问题不image在于领域而在于领域r它被定义为a,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
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用gocql驱动程序在Cassandra中存储字节片

无法将结果集转换为Cassandra datastax驱动程序中的列表

使用CQL Java驱动程序在Cassandra中插入数据而不用单引号引起来

无法使用 Cassandra Datastax Java 驱动程序连接到 Cassandra 节点之一

如何使用cassandra驱动程序将地图类型插入cassandra

如何在 Cassandra c# 驱动程序中存储分页状态?

是否有任何方法可以使用.net驱动程序从cassandra数据库中忽略实体的列

使用C#驱动程序将UDT元素添加到Cassandra中的列表集合的正确方法是什么?

我无法使用Selenium Web驱动程序将所有值存储在类中

无法使用 Cassandra 的 C 驱动程序连接到密钥空间

无法使用DataStax C#驱动程序从Cassandra获取值

使用Datastax Java驱动程序无法通过Cassandra的UDT密钥检索

使用datastax驱动程序检索有关Cassandra集群数据中心的信息

使用 Phantom 驱动程序实现多数据中心 Cassandra

使用 React-Native 中的其他数据从以 base64 存储的 JSON 渲染图像

使用ReactiveGridFsTemplate Spring Webflux将base64图像存储在mongodb中

如何使用Javascript将base64作为图像存储在文件系统中

在Docker中设置cassandra驱动程序(python)

Datastax C#驱动程序中的Cassandra timeuuid

Datastax Cassandra Java驱动程序的Accessor是否使用分页?

Cassandra C ++驱动程序如何使用zlib库?

使用 Python Cassandra 驱动程序进行大号。查询数

Datastax Java Cassandra驱动程序:使用WHERE的多个AND语句?

Cassandra会话线程安全吗?(使用cpp驱动程序)

尝试使用python安装cassandra驱动程序时出错

使用python cassandra驱动程序选择和解码Blob

如何使用 Python 驱动程序获取 Cassandra 表的大小?

Nodejs - Apache Cassandra(使用 Datastax 驱动程序)

无法使用java将图像转换为base64