使用object参数进行查询

Iva*_*vić 6 android android-room

如何使用类的实例作为数据源进行房间查询:以下示例将使我的问题清楚:

@Query("UPDATE CATEGORIES SET Name = :item.Name, Active = :item.Active " +
"WHERE CategoryID = :item.CategoryID")
fun updateCategory(item: EntityCategory)
Run Code Online (Sandbox Code Playgroud)

我试过了

@Update
fun updateCategory(item: EntityCategory)
Run Code Online (Sandbox Code Playgroud)

但这将删除所有退回数据

我的实体类:

@Entity(tableName = "CATEGORIES")
data class EntityCategory(
        @PrimaryKey(autoGenerate = false)
        var CategoryID: Long,
        var Name: String,
        var Active: Boolean) {
    constructor(item: DMCategory) : this(item.CategoryID, item.Name, item.Active)
}
Run Code Online (Sandbox Code Playgroud)

我无法自动生成主键.

小智 1

尝试

@Insert(onConflict = OnConflictStrategy.REPLACE)
Run Code Online (Sandbox Code Playgroud)