Observable fromIterable 不要将项目插入房间
Observable fromIterable do not insert item to Room
我遇到了一个非常奇怪的问题,不知道为什么会这样。
当我使用 fromIterable 进行流式处理以将一个个项目插入到 Room 项目时,它不会插入。没有例外,没有。我什至将断点放置到生成的 Room DAO 实现 class,它调用方法但不进入 Completable 块,只是忽略它。
repository.insert(mapper.transform(item))
.flatMap { id ->
Observable.fromIterable(item.tags)
.map { tag ->
anotherRepository.insert(
JoinEntity(id, tag.id)
)
}
.toList()
.flatMap { Single.just(id) }
}
但是如果我从 Iterable 中删除,并替换为直接插入调用,它确实可以正常插入。没有任何其他变化。
repository.insert(mapper.transform(item))
.flatMap { id ->
anotherRepository.insert(JoinEntity(1, 1))
.andThen(Single.just(id))
}
我已经尝试了很多东西,但仍然没有想法。试过flattenAsFlowable
,还是不行。
将不胜感激任何帮助。谢谢!
好的,找到问题所在,也许会对某人有所帮助。
repository.insert(mapper.transform(item))
.flatMap { id ->
Observable.fromIterable(item.tags)
.filter { tag -> tag.id != null }
.flatMapSingle { tag -> anotherRepository.insert(JoinEntity(id, tag.id)) }
.toList()
.flatMap { Single.just(id) }
}
我已经将 map/flatMap
更改为 flatMapSingle
,所以它确实被发射了。
我遇到了一个非常奇怪的问题,不知道为什么会这样。 当我使用 fromIterable 进行流式处理以将一个个项目插入到 Room 项目时,它不会插入。没有例外,没有。我什至将断点放置到生成的 Room DAO 实现 class,它调用方法但不进入 Completable 块,只是忽略它。
repository.insert(mapper.transform(item))
.flatMap { id ->
Observable.fromIterable(item.tags)
.map { tag ->
anotherRepository.insert(
JoinEntity(id, tag.id)
)
}
.toList()
.flatMap { Single.just(id) }
}
但是如果我从 Iterable 中删除,并替换为直接插入调用,它确实可以正常插入。没有任何其他变化。
repository.insert(mapper.transform(item))
.flatMap { id ->
anotherRepository.insert(JoinEntity(1, 1))
.andThen(Single.just(id))
}
我已经尝试了很多东西,但仍然没有想法。试过flattenAsFlowable
,还是不行。
将不胜感激任何帮助。谢谢!
好的,找到问题所在,也许会对某人有所帮助。
repository.insert(mapper.transform(item))
.flatMap { id ->
Observable.fromIterable(item.tags)
.filter { tag -> tag.id != null }
.flatMapSingle { tag -> anotherRepository.insert(JoinEntity(id, tag.id)) }
.toList()
.flatMap { Single.just(id) }
}
我已经将 map/flatMap
更改为 flatMapSingle
,所以它确实被发射了。