如何使用带有RxJava的Android Room进行单行查询?我能够查询项目列表,没有问题 . 在这里,我想查找是否存在特定行 . 根据文档,看起来我可以返回Single并检查EmptyResultSetException异常,如果不存在行 .
我可以有类似的东西:
@Query("SELECT * FROM Users WHERE userId = :id LIMIT 1")
Single<User> findByUserId(String userId);
我该如何使用此电话?看起来有一些onError / onSuccess但在Single <>上找不到那些方法 .
usersDao.findByUserId("xxx").???
任何工作的例子都会很棒!
1 回答
或者,如果您通过其他方式处理背景线程,则返回
User
.在这里,我显示
subscribe()
采用两个lambda表达式,用于User
和错误 . 您可以使用两个Consumer
对象 . 我还假设您有rxandroid
作为依赖项,对于AndroidSchedulers.mainThread()
,并且您希望User
在该线程上传递给您 .IOW,您使用此方法的方式与使用RxJava中的任何其他
Single
相同 . 细节将根据您的需求而有所不同 .