【问题标题】:Updating room database by using Object使用 Object 更新房间数据库
【发布时间】:2022-11-09 15:22:44
【问题描述】:
我在 android 中使用 Room 数据库,我想通过使用对象来更新它。
我想做这个。可能吗?
`
@Query("UPDATE video_info_table SET videoStatus = :model.videoStatus WHERE id = :model.id")
fun delete(model: FileModelClass)
`
【问题讨论】:
标签:
android
database
kotlin
android-room
【解决方案1】:
不(不直接),你应该使用: -
@Update
fun update(model: FileModelClass)
- 并且显然正确设置了所有字段/成员(因为所有字段都禁止主键,用于 where 子句,将被更新)
或者
@Query("UPDATE video_info_table SET videoStatus = :videoStatus WHERE id = :id")
fun update(videoStatus: String, id: Long)
-
打电话时使用thedao.update(theFileModelClass.videoStatus,theFileModel.id)
-
请注意,可能必须更改类型以适应实际的字段/成员(例如,可能是 Int 而不是 Long)
当然,您可以在界面中为第二个包装器因此对这个问题是肯定的,但间接地, 如
fun update(model: FileModelClass) {
update(model.videoStatus, model.id)
}
【解决方案2】:
你可以试试这个
@Query("UPDATE video_info_table SET videoStatus =:status WHERE id = :id")
void update(String status, int id);