房间数据库:仍然收到“参数‘id’没有传递任何值”,即使它是自动生成的

Zor*_*gan 8 android kotlin android-room

这是我的房间实体:

@Entity(tableName = "matched_users")
data class MatchedUser(
    @PrimaryKey(autoGenerate = true) val id: Int,
    @ColumnInfo(name = "match_id") val matchId: String
)
Run Code Online (Sandbox Code Playgroud)

这是我在我的片段中实例化它:

private fun pass(){
    CoroutineScope(coroutineContext).launch {
            val match = MatchedUser()
       CustomApplication.database?.matchedUsersDao()?.addMatchUid(match)
            Log.d(TAG, "Added matchId to DB")
        }
    return removeUser2()
}
Run Code Online (Sandbox Code Playgroud)

当我将鼠标悬停在上面时,MatchedUser()它仍然说我需要传递 .. 的参数id,但它应该按照实体中的说明自动生成。

知道为什么吗?

Mat*_*kov 1

您必须在MatchedUser 类中添加构造函数和getter 方法。然后创建一个参数 id = 0 的实例:

val match = MatchedUser(0)
Run Code Online (Sandbox Code Playgroud)