java - @Update 在 Android Room 中如何工作?

标签 java android sqlite persistence android-room

我在 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/

相关文章:

java - 根据 Canvas 上的位置((x,y) 坐标)用不同颜色绘制 SWT 点

java - 反转分隔符之间的多个字符串

c# - 使用 Azure 移动服务中的脱机表时 CreatedAt 属性为 null

mysql - sqlite语法问题

java - Swing - 当内存游戏结束时计时器不会停止

java - 如何在java中创建内部类对象的多维数组

android - 将 Firebase 添加到 Android 应用程序

java - 如何找出我已经写入字节缓冲区的字节数(Java 新手)

android - 如何在按下按钮时重复做某事?

c - rails install pg - 找不到“libpq-fe.h header ”