无法从结果集中获取行

摩奴查达

以下函数将数据保存在cassandra. 它调用abstract rowToModel在同一个类中定义方法将返回的数据cassandra转换为相应的数据模型。

def saveDataToDatabase(data:M):Option[M] = { //TODOM - should this also be part of the Repository trait?
    println("inserting in table "+tablename+" with partition key  "+partitionKeyColumns +" and values "+data)
    val insertQuery = insertValues(tablename,data)
    println("insert query is "+insertQuery)
    try {
      val resultSet:ResultSet = session.execute(insertQuery) //execute can take a Statement. Insert is derived from Statement so I can use Insert.
      println("resultset after insert: " + resultSet)
      println("resultset applied: " + resultSet.wasApplied())
      println(s"columns definition ${resultSet.getColumnDefinitions}")
      if(resultSet.wasApplied()){
        println(s"saved row ${resultSet.one()}")
        val savedData = rowToModel(resultSet.one())
        Some(savedData)
      } else {
        None
      }
    }catch {
      case e:Exception => {
        println("cassandra exception "+e)
        None
      }
    }
  }

abstract rowToModel定义如下

override def rowToModel(row: Row): PracticeQuestionTag = {
   PracticeQuestionTag(row.getLong("year"),row.getLong("month"),row.getLong("creation_time_hour"),
      row.getLong("creation_time_minute"),row.getUUID("question_id"),row.getString("question_description"))

  }

但是我在其中定义的打印语句saveDataToDatabase没有打印数据。我原以为打印件会打印出来,PracticeQuestionTag但我看到的是以下内容

我希望看到这样的东西 -PracticeQuestionTag(2018,6,1,1,11111111-1111-1111-1111-111111111111,some description1)当我one从 ResultSet`打印时但我看到的是

resultset after insert: ResultSet[ exhausted: false, Columns[[applied](boolean)]] resultset applied: true columns definition Columns[[applied](boolean)] saved row Row[true] row to Model called for row null cassandra exception java.lang.NullPointerException

为什么ResultSetone并且columnDefinitions没有显示数据模型中的值?

阿布舍克·加格

这是设计使然。插入的结果集将只包含一行,表明是否应用了结果。

执行条件语句时,ResultSet 将包含一个单行,其中有一列名为“applied”的布尔类型。这表明条件语句是否成功。

这也是有道理的,因为 ResultSet 应该返回查询的结果,以及为什么要通过重新调整结果集中的所有输入来使结果集对象变重。可以在此处找到更多详细信息

当然 Get 查询会有详细的结果集。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL的游标结果集中获取行的最新值

来自分类Dev

从结果集中获取统计信息

来自分类Dev

从结果集中获取数据太慢

来自分类Dev

如何从jdbc的结果集中按行获取所有数据

来自分类Dev

如何仅使用Java获取类型为Forward的结果集中的上一行值

来自分类Dev

如何获取结果集中没有重复单元格的行

来自分类Dev

如何仅使用Java获取类型为Forward的结果集中的上一行值

来自分类Dev

获取内容 | Select-String 从结果集中返回仅顶部的行

来自分类Dev

如何获取mongo结果集中的项目索引

来自分类Dev

如何从Cassandra结果集中获取嵌套地图

来自分类Dev

如何在结果集中获取列表?

来自分类Dev

MySQL查询以获取结果集中的记录

来自分类Dev

从Mule的结果集中获取特定值

来自分类Dev

如何从JBCD结果集中获取整数?

来自分类Dev

如何从Cassandra结果集中获取嵌套地图

来自分类Dev

无法从结果集中读取列值

来自分类Dev

无法访问LINQ结果集中的列

来自分类Dev

如何合并选择查询结果集中的行

来自分类Dev

如何从结果集中删除行/列?

来自分类Dev

Sqlite:如何从结果集中获取每日前N个结果

来自分类Dev

无法获取查询结果

来自分类Dev

无法获取查询结果

来自分类Dev

无法获取查询结果

来自分类Dev

无法从 postgres 获取结果

来自分类Dev

无法从 JSON 数据集中获取位置坐标

来自分类Dev

如何从结果集中获取标题和明细行?

来自分类Dev

从先前生成的结果集中获取价值

来自分类Dev

从riak的结果集中获取一定值的总和

来自分类Dev

从php中的结果集中获取特定的列值