Android房间数据库创建没有ID的实体对象

标签 android kotlin android-room android-database

我的实体类:

@Entity(tableName = "student")
data class Student(
    @PrimaryKey(autoGenerate = true)
    val id: Long,

    val name: String,
    val age: Int,
    val gpa: Double,
    val isSingle: Boolean
) 
问题是,由于 idRoom 自动生成数据库 - 意味着无论我为 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/

相关文章:

java - 使用序列化对象列表

kotlin - 如何将 lateinit Kotlin 属性设置为 null

lambda - 在 Kotlin 中将函数传递给函数

android-room - 从android Room Architecture Component中的多对多结构中获取LiveData

android - 如何从 DAO 中获得 Deferred?

android - 如何在 Activity 中使用 Room 和 LiveData 删除 LiveData<Object>?

android在按下搜索按钮@手机时启动用户定义的 Activity

Android - 删除包含该文件的任何内容

java - 无法覆盖乐趣完成()

android - 如何删除代表 webview 中滚动结束的蓝色耀斑