【发布时间】:2020-12-14 13:41:42
【问题描述】:
我正在使用 android room 库来维护本地数据库。 我正在尝试通过检查列值来更新表的一行,就像 where 子句一样。
目前我正在使用下面的代码来更新记录,
@Update
void update(ProductInfo prodInfo);
我的问题是,我想使用where子句来更新记录,例如我的查询是;
Update ProductInfo set (AllColumns) where prodInfo.last_name = 'xyz';
但在房间里我找不到答案,一种选择是编写原始查询,但编写所有列名非常冗长。
谁能指导我解决这个问题?
【问题讨论】:
-
1.使用原始查询或 2. 使用“where”全选,更新 java 中的字段,使用更新列表
@Update void updateList(List<ProductInfo> prodInfo); -
@Selvin :我尝试实现这一点,但由于数据不同,它正在创建另一个新记录。
-
不要更改主键,那么第二个解决方案应该可以正常工作
标签: android database android-room