【发布时间】:2019-10-07 11:14:28
【问题描述】:
我正在研究 Room 数据库并尝试插入 项目列表(例如,在我的案例中包含作者姓名和引用的引用列表)。
以下是我正在使用的代码:
// view model
BaseApp.daoInstance?.appDao()?.insertQuotes(response!!)
// dao
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertQuotes(listData: MutableList<Quote>)
当我再次尝试插入相同的数据时,它总是作为新数据插入,而不是替换当前项目。
我对此OnConflictStrategy.REPLACE进行了大量研究,但找不到任何合适的答案。
是否有人面临同样的问题并找到了解决方案,还是我做错了什么?
提前谢谢你...!!!
【问题讨论】:
-
冲突意味着如果它具有相同的 id,那么它将替换特定 id 的数据。我曾经像往常一样将房间数据库与 OnConflictStrategy.REPLACE 一起使用。它工作正常。
-
但是由于数据还没有插入,我们如何实现这种冲突呢?理想情况下,一旦插入数据就会生成 id 那么您知道在我的情况下可以做什么吗?
-
显示数据插入代码。
-
BaseApp.daoInstance?.appDao()?.insertQuotes(response!!)
-
你能添加你的
Quote实体的定义吗?
标签: android kotlin android-room