我正在使用Room数据库和RxJava。 我需要从表中删除所有记录,然后插入新的条目集。
这样做的方法是:
@Transaction
fun clearAndInsert(records: List<Whatever>): Disposable {
deleteRecords()
insertRecords(records)
}
deleteRecords()
返回一次性用品
并且insertRecords()
返回一次性用品。
但是,我想从这个方法返回一个Disposable。虽然我可以返回一个CompositeDisposable。
所以我的意思是:
@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
是正确的方法吗?