我在 Room 数据库中有数据,我想检查它是否等于某些数据并相应地更新一行,例如:
if (dataInDatabase.equals(providedData)) {
// update existing data.
}
我拥有的唯一@PrimaryKey 是自动生成的ID,并且没有@ForeignKeys。我知道现有数据只能使用 @PrimaryKey 进行更新,但我检查的数据不是 @PrimaryKeys。解决这个问题最好的方法是什么?如何迭代并使用 .equals()
方法来迭代数据库中的所有数据并更新某些行(如果它们满足条件)?
最佳答案
如果您的查询是简单的 CRUD(创建、读取、更新和删除)操作,Room 将为您提供使用注释的机会。但是,如果您觉得您的查询更具体,您可以选择定义一个方法来处理您想要的目标,并使用 @query()
注释对其进行注释,将您的 SQL 查询作为参数传递给它。
就像您的情况一样,您可以考虑采用类似的方法
@query("put your update query here")
udateMytable(String data); // pass the data to this method as its arguments
关于java - @Update 在 Android Room 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47614816/