使用RxJava2类型返回的更新查询会给出错误:不确定如何将Cursor转换为该方法的返回类型

问题描述 投票:0回答:1

这里是提供游标转换问题的代码段:

@Query("UPDATE profile SET profilePicture=:newProfilePicture WHERE firstName = :first AND lastName = :last")
fun updateProfilePicture(
    newProfilePicture: ByteArray,
    first: String,
    last: String
) : Completable

我尝试过的:

  • 从查询中删除lastName并返回Single<String>
  • 返回Single<List<String>>
  • 返回Single<Void>

但是它们什么都没有起作用。

rx-java2 android-room
1个回答
0
投票

@查询方法:Room支持类型为PublisherFlowableObservable的返回值。

如文档所述,查询方法支持的类型为:Publisher,Flowable和Observable。因此,要解决的第一件事是将Completable更改为受支持的类型之一。

修复后,我在生成的代码中仍然遇到问题。我发现了编译错误,因为期望的类型是Integer。因此,我所做的修复是将RxJava2支持的类型更改为Int,然后将其包装为Single

IMO,这只是一种解决方法。

© www.soinside.com 2019 - 2024. All rights reserved.