我在Room数据库中有数据,我想检查它是否等于某些数据并相应地更新一行,如:
if (dataInDatabase.equals(providedData)) {
// update existing data.
}
我唯一的@PrimaryKey是一个自动生成的ID,没有@ForeignKeys。我知道现有数据只能使用@PrimaryKey更新,但我检查的数据不是@PrimaryKeys。什么是最好的解决方法?如何迭代并使用.equals()
方法迭代数据库中的所有数据并在满足条件时更新某些行?
答案 0 :(得分:0)
如果您的查询是简单的CRUD(创建,读取,更新和删除)操作,Room将为您提供使用注释的机会。但是,如果您觉得查询更具体,则可以选择定义一种方法来处理所需的目标,并使用@query()
批注对其进行批注,将SQL查询作为参数传递给它。
根据您的情况,您可以考虑使用
之类的方法@query("put your update query here")
udateMytable(String data); // pass the data to this method as its arguments
答案 1 :(得分:-1)
您可以使用以下代码进行更新
有一个可用于更新@Update
的注释。这将更新数据库中的数据。
e.g。
@Update
public void updateUsers(User... users);