如何在不提供 id 的情况下自动生成 Room 数据库 id

Dav*_*esa 3 sqlite android android-room android-architecture-components

我正在尝试创建一个房间数据库,我希望插入其中的每个项目都有自己唯一的 ID,而无需我提供它,问题是当我尝试将新项目插入数据库时​​,出现错误,要求我提供一个 ID。

这是我的实体:

    @Entity(tableName = "notes_table")
    data class Note(

    @PrimaryKey(autoGenerate = true)
    val id: Int = 0,

    @ColumnInfo(name = "description")
    val description: String,

    @ColumnInfo(name = "priority")
    var priority: Int)
Run Code Online (Sandbox Code Playgroud)

有没有办法让数据库创建自己的自动生成的自动递增 id 列,而无需我像这样添加它:

    val item = Note(id, item, priority)
    insert(item)
Run Code Online (Sandbox Code Playgroud)

而是这样做:

    val item = Note(item, priority)
    insert(item)
Run Code Online (Sandbox Code Playgroud)

shb*_*shb 5

创建一个 constructor 接受itempriority作为参数的

@Entity(tableName = "notes_table")
data class Note (var item: String,
        @ColumnInfo(name = "priority") 
        var priority: String) {
    @PrimaryKey(autoGenerate = true)
    var id: Long = 0,
    //.....
}
Run Code Online (Sandbox Code Playgroud)