如何更新 Room 数据库中实体中的某些列?

How do I update certain columns within an entity in a Room database?

有没有一种方法可以只更新特定数量的数据,而不是将新的实体对象作为参数传入 DAO 接口函数以更新一行数据一个实体的列而不是所有列?我尝试只更新我的实体的几列,但如下所示无济于事:

@Query("UPDATE media SET name = :name AND description = :description" +
        " AND uri = :uri AND text = :text AND media_type = :mediaType" +
        " WHERE id = :id")
fun update(id: Int, name: String, description: String, uri: String, text: String, mediaType: String)

...显然 "AND" 关键字不起作用,因为只有第一个参数 "name" 已更新。

尝试:

"UPDATE media SET name = :name, description = :description," +
        " uri = :uri, text = :text, media_type = :mediaType" +
        " WHERE id = :id"

有关 UPDATE 语法的更多信息,请参阅 the SQLite documentation