我正在使用Room数据库和RxJava。
我需要从表中删除所有记录,然后插入一组新的条目。
一种方法是:
@Transaction
fun clearAndInsert(records: List<Whatever>): Disposable {
deleteRecords()
insertRecords(records)
}
deleteRecords()
返回一次性
insertRecords()
不过,我想从这个方法返回一个一次性的。虽然我可以返回一个合成的可分解的。
@Transaction
override fun clearAndInsertTags(records: List<Whatever>): Disposable {
return Observable.fromCallable { subscriptionsDao.deleteRecords() }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
insertRecords(records)
})
}
这将返回一个一次性的。然而,这是交易吗?不管什么原因,
insertRecords()
失败并调用onError。房间真的会为我恢复删除所有记录吗?如果没有,正确的方法是什么?或者是返回一个
CompositeDisposable
这条路对吗?