BUG信息

使用Room数据库进行数据存储和读取的时候,出现了这个BUG

The columns returned by the query does not have the fields [chartId] in com.xxx.xxx.bean.
ChartRoom even though they are annotated as non-null or primitive.
Columns returned by the query: [type_name,recently_time,type_target_sign]
public abstract java.util.List<com.xxx.xxx.bean.ChartRoom> getAll();

代码

Entry
@Fts4
@Entity(tableName = "user_healthy_data")
data class ChartRoom(@PrimaryKey(autoGenerate = true) @ColumnInfo(name = "rowid")var chartId: Long,@ColumnInfo(name = "type_name")var chartName: String?,@ColumnInfo(name = "recently_time")var chartTime: String?,@ColumnInfo(name = "type_target_sign")var chartSign: String?
)
DAO
@Dao
interface ChartRoomDAO {@Insert(onConflict = OnConflictStrategy.REPLACE)fun insertAll(vararg chartRooms: ChartRoom)@Updatefun updateData(vararg chartRooms: ChartRoom)@Deletefun delete(vararg chartRooms: ChartRoom)@Query("SELECT * FROM user_healthy_data")fun getAll(): MutableList<ChartRoom>@Query("SELECT * FROM user_healthy_data WHERE rowid = (:chartId)")fun findChartRoomById(chartId: Long): ChartRoom
}
Database
@Database(entities = [ChartRoom::class], version = 1, exportSchema = false)
abstract class ChartRoomDatabase : RoomDatabase() {abstract fun chartRoomDao(): ChartRoomDAO?companion object {private const val DB_NAME = "user_healthy"@Volatileprivate var instance: ChartRoomDatabase? = nullfun getInstance(context: Context) =instance ?: synchronized(this) {instance ?: Room.databaseBuilder(context, ChartRoomDatabase::class.java, DB_NAME).build()}}
}

代码调用

val userDB = ChartRoomDatabase.getInstance(requireActivity()).chartRoomDao()Thread {userDB?.apply {insertAll(ChartRoom(chartId = 1,chartName = "心率数据",chartTime = "2023-01-06",chartSign = "85"),ChartRoom(chartId = 2,chartName = "体温数据",chartTime = "2023-02-28",chartSign = ""))getAll().forEach {Log.e(TAG, "数据库数据:${it.chartName},${it.chartTime},${it.chartSign}")}}}.start()
报错原因

当我们添加数据后,使用【getAll】方法获取数据库的数据,返回【ChartRoom】类型的数据,这里面有四个类型的数据,但是在获取数据时获取不到【chartId】的数据,只能返回三个数据,但是【getAll】使用【ChartRoom】接收,导致类型无法匹配,产生报错。

解决方式
创建新Bean类
data class ChartRoomBean(@ColumnInfo(name = "type_name")var chartName: String?,@ColumnInfo(name = "recently_time")var chartTime: String?,@ColumnInfo(name = "type_target_sign")var chartSign: String?
)

然后使用新的Bean类接收数据,修改【DAO】

@Dao
interface ChartRoomDAO {@Insert(onConflict = OnConflictStrategy.REPLACE)fun insertAll(vararg chartRooms: ChartRoom)@Updatefun updateData(vararg chartRooms: ChartRoom)@Deletefun delete(vararg chartRooms: ChartRoom)@Query("SELECT * FROM user_healthy_data")fun getAll(): MutableList<ChartRoomBean>//将ChartRoom改为ChartRoomBean@Query("SELECT * FROM user_healthy_data WHERE rowid = (:chartId)")fun findChartRoomById(chartId: Long): ChartRoomBean//将ChartRoom改为ChartRoomBean
}

此时Bug修复。

提醒

此Bug只有在使用【@Fts】时才会出现

【Bug修复】Room数据库 The columns returned by the query does not have the fields......相关推荐

  1. TensorFlow 1.7.0正式发布,Bug修复和改进内容都在这里了

    编译 | AI科技大本营(公众号ID:rgznai100) 参与 | 张建军 TensorFlow 1.7.0 近日正式发布,新版本主要有以下改进内容,AI科技大本营对其进行了编译. 主要特征和改进 ...

  2. Saiku Table展示数据合并bug修复(二十五)

    Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据,如果点击了 非空的字段 按钮,则会自动进行数据合并,为空的数据行以及数据列都会自动隐藏掉. 首先我们应该定位问题: ...

  3. doodoo.js发布1.1.0 -- 中文最佳实践Node.js Web快速开发框架,支持Koa.js, Express.js中间件。包含多项功能改进,及Bug修复。...

    2019独角兽企业重金招聘Python工程师标准>>> doodoo.js发布1.1.0 -- 中文最佳实践Node.js Web快速开发框架,支持Koa.js, Express.j ...

  4. Ext3.x版本锁定列和多表头的插件,BUG修复版

    Ext3.x版本的锁定列和多表头都是通过插件实现,但是这两个插件不能一起工作,而实际上这样的业务也是存在的,即在多表头的情况下也需要锁定列. 在Ext的论坛上有很多这样的需求,都没有一个解决方案,除了 ...

  5. Kodi 18.2 “Leia” 发布,Bug 修复版本

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Kodi 18.2 发布了,Kodi 也就是 XBMC,它全称 XBOX Media Center,是 XBOX 平台的媒体中心. 18.2 ...

  6. BUG 修复预估模型

    在代码红线扫描业务中,会扫描出开发提交项目代码中的一些bug或者警告,开发会按需对其中一些进行修复.目前,扫描出的bug按照red.safe.block.serious.risk.warning.st ...

  7. linux mysql清除数据库所有表_MySQL修复指定数据库下的所有表

    mysql,mariadb,percona 这几天数据库频繁crash,查看日志发现类似如下的错误: [ERROR] mysqld: Table './database/pre_forum_forum ...

  8. TensorFlow 1.8.0正式发布,Bug修复和改进内容都在这里了

    译者 | 王柯凝 编辑 | Just 出品 | AI科技大本营(公众号ID:rgznai100) [导语]TensorFlow 1.8.0 近日正式发布,新版本主要有以下改进内容,AI科技大本营对其编 ...

  9. TensorFlow1.8.0正式发布,Bug修复和改进内容都在这里了

    译者 | 王柯凝 编辑 | Just 出品 | AI科技大本营(公众号ID:rgznai100) [导语]TensorFlow 1.8.0 近日正式发布,新版本主要有以下改进内容,AI科技大本营对其编 ...

最新文章

  1. python读取数据校验数据_Python通过Schema实现数据验证方式
  2. 万字长文:助你攻破 JAVA NIO 技术壁垒
  3. 电液伺服系统_电液伺服系统的误差/偏差以及开环增益
  4. 【CyberSecurityLearning 29】Linux下命令帮助、压缩、vim、软件安装
  5. 疯狂android源码中文乱码无gbk,我的Android进阶之旅------Android使用cmd窗口进行adb logcat时出现中文乱码问题的解决办法...
  6. 队列和消息队列_消息队列概述[幻灯片]
  7. [你必须知道的.NET]第二十三回:品味细节,深入.NET的类型构造器
  8. mysql 索引:类型 、创建
  9. python webdriver 等待网页已登录_python基础编程:python+selenium实现163邮箱自动登陆的方法...
  10. 嘿,我这里有一个 Survey!
  11. alwayson高可用组_AlwaysOn可用性组–如何在集群实例和独立实例之间设置AG(第3部分)
  12. 使用valgrind检查内存越界
  13. linux系统有界面么,linux系统界面详情介绍
  14. 不用百度网盘客户端下载文件
  15. 计算机软件专业的学术道德,遵守学术规范 恪守学术道德--计算机工程学院举行2019届毕业设计(论文)动员会...
  16. 世界上最优秀的二十款防火墙
  17. 理解ViT(结合代码)
  18. 做游戏,不加班行不行?
  19. 使用php打印实心菱形
  20. 树莓派+USB摄像头+Yeelink--5分钟内DIY你自己的家庭监控

热门文章

  1. 纵观计算机简史ppt,纵观计算机简史初中信息技术新课本中国地图出社..ppt
  2. MFC对话框部分区域的显示和隐藏功能的实现
  3. 【博主推荐】html好看的邀请函(附源码)
  4. C++获取CPU使用率
  5. 【网络】RPC通信之Apache Thrift
  6. git remote prune
  7. Matlab R2020a + Yalmip + IBM ILOG CPLEX Optimization Studio V12.10
  8. 阿里p8免费公开五份Java架构师学习手册,助力金九银十
  9. 记录Mybatis报Mapped Statements collection already contains value for 的错误的原因
  10. GIT fatal: unable to auto-detect email address (got 'Administrator@DESKTOP-880G72L.(none)')