我的实体类:
@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
}
关于Android房间数据库创建没有ID的实体对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64517656/