【问题标题】:When does room delete entities from database?房间何时从数据库中删除实体?
【发布时间】:2021-04-10 17:26:40
【问题描述】:

我有一个显示一些数据并使用标准存储库模式的视图。

  1. onCreateView 中的片段调用 repo 并观察
  2. Repo 将数据库中的缓存数据返回为 LiveData(使用房间)
  3. Repo 调用网络请求以获取真实数据(使用 retrofit2)
  4. Repo 将网络响应保存到数据库(使用房间)

片段正确显示最新数据。但是,当我离开显示数据的片段时,缓存的数据将从本地数据库中删除。我确认数据已保存到数据库中,然后使用 Android Studio 上的 Database Inspector 删除。我的 dao 中什至没有删除查询。 Dao 只有插入和选择查询。

这怎么可能发生?有没有办法调试这个?

【问题讨论】:

    标签: android android-room


    【解决方案1】:

    房间中的@Insert查询可以级联删除其他连接的实体,如果它被标记了

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    

    您不必一定要有@Delete 查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多