gpt4 book ai didi

android - Room Insert Completable 在两次或三次插入后停止工作

转载 作者:行者123 更新时间:2023-11-29 00:55:46 26 4
gpt4 key购买 nike

我在 ROOM 中有一个简单的插入,但出于奇怪的原因,我的插入在两三个插入后在我的应用程序中不起作用。还有另一个奇怪的行为,当插入时我有一个成功的插入但是当查看数据库时,没有任何东西。

DAO

@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(entryTable: EntryTable): Completable

View 模型

entryRepository.saveEntryTable(EntryTable(fieldId, entryId, tabId, index))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
Timber.d("<<<<<row saved!")
result.value = Status.SUCCESS
}, {
Timber.e(it)
Timber.d("<<<<<<<<<<<row not saved!")
result.value = Status.ERROR
})

OnSubscribe 总是被触发,但在两次插入之后,数据库中没有任何内容,我的日志中也没有错误。

也没有任何替换,因为每次都有新的PK。

编辑

这里有关于这个问题的更多信息:

奇怪的是,房间数据库看起来像是在内存中复制,当我的应用程序正在寻找新记录时,我可以拥有它们,比如 (select * from entry_table),并将它们显示给用户。但是如果我停止应用程序并重新启动它,该行就会消失(因为它们不在数据库中)..

最佳答案

我找到了答案或者我可以说出解决方案,但目前我不明白为什么这种行为会改变,因为我没有改变我的应用程序中的任何东西。

通过将 JournalMode 从 WRITE_AHEAD_LOGGING(或自动)更改为 TRUNCATE,我的所有更改都直接在数据库中执行,我没有任何奇怪的内存数据库。

关于android - Room Insert Completable 在两次或三次插入后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54880988/

26 4 0