【问题标题】:Android room insert/update resultAndroid房间插入/更新结果
【发布时间】:2021-06-19 22:18:06
【问题描述】:

我已经使用房间一段时间了。我来自 mysql 背景,您必须检查查询和东西的值。在房间里,我觉得这有点复杂,因为到目前为止,我可以将 dao 插入查询声明为 void 或者只要返回 rowId 如果我返回很长,我必须编写一个侦听器来通知 UI 成功/失败 我的问题是,这有必要吗?我需要插入/更新/删除的返回值还是这些查询保证成功?

【问题讨论】:

    标签: android-room


    【解决方案1】:

    我的问题是,这有必要吗?

    这取决于并希望在下面得到更好的解释(至少一点点)。

    我需要插入/更新/删除的返回值还是这些 查询保证成功? 不能保证他们会成功。但是,您可以假设他们拥有或使用 CONFLICT 处理方式。

    很大程度上取决于实体的编码方式,例如,假设您有一个带有 id 和名称的简单表(实体),并且为简单起见,您有 autogenerate = true 并且您在插入时永远不允许指定 id .除非数据库很大(超出存储设备容量)或经过调整。将始终生成唯一 ID。

    如果名称需要是UNIQUE,那么您正在引入一个方面,这使得插入更有可能不会成功。如果您将插入的onConflictStrategy 设置为IGNORE,那么复制不会失败,但您可能想知道是否没有插入任何内容(返回-1)。

    这只是一方面。 答案确实是您需要考虑数据库和应用程序本身的设计。就我个人而言,我总是会至少通知用户异常/意外,这可能意味着是的,这是必要的(通常抑制代码比添加新代码更容易)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-12
      • 2020-03-18
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      • 2019-11-16
      相关资源
      最近更新 更多