android - Android房间数据库创建没有ID的实体对象
问题描述
我的实体类:
@Entity(tableName = "student")
data class Student(
@PrimaryKey(autoGenerate = true)
val id: Long,
val name: String,
val age: Int,
val gpa: Double,
val isSingle: Boolean
)
问题是,由于id
是由数据库自动生成的Room
- 意味着无论我id
在构造函数中放入什么,它都会被覆盖,并且因为它是构造函数中的参数之一,所以我必须id
每次都给出像这样:
val student = Student(0L, "Sam", 27, 3.5, true)
我怎样才能避免弥补,id
所以我可以像这样输入必要的数据:
val student = Student("Sam", 27, 3.5, true)
解决方案
不要将 id 放在构造函数中:
@Entity(tableName = "student")
data class Student(
val name: String,
val age: Int,
val gpa: Double,
val isSingle: Boolean
) {
@PrimaryKey(autoGenerate = true)
var id: Long? = null
}
推荐阅读
- c++ - 为什么不在 C 中强制转换 malloc 而在 C++ 中强制转换?
- python - 创建子图,其中删除了从某些节点下降的节点
- delphi-10.4-sydney - delphi 中的 TEdit 需要回答哪些消息才能使 Windows 文本建议起作用
- bash - 从管道中的 git 提交消息中删除特殊字符
- ios - 创建 XCFrameworks 时缺少架构 x86_64
- python - 在 Pytest 夹具中修补导入的函数
- python - Numpy unwrap error when using apply() on Pandas dataframe
- java - 如何在文本小部件中读取 LocalTime 变量
- pipeline - 我需要在没有 nltk 的情况下在 python 中执行 Stemming 操作。使用管道方法
- angular - 实现可重用 Angular 反应式“子表单”的正确方法