【发布时间】:2021-11-14 00:43:24
【问题描述】:
我有一个带有 Room 数据库的应用程序,包括 DAO 和 Repository。事件顺序如下:
- 插入新行。
- 将行发送到服务器
- 更新该行以指示该行已发送。
问题是新行的 ID 在我发送到服务器之前或更新时并不总是可用的。因此,DAO 更新方法不起作用,因为它没有正确的 ID。
在我继续之前让插入返回 ID 是否有技巧?我知道这是在规避异步进程的好处,但在这种情况下可能是必要的。
我希望其他人可能已经解决了这个问题。
【问题讨论】:
-
更新:由于新的 rowid 是异步生成的,我无法在更新中使用它,所以我决定在插入之前不使用自动生成的 ID 并将主键创建为 uniqueID。这样我就已经有了用于更新的密钥。 MikeT 下面的回答也有助于解决问题。
标签: database insert android-room