java - Room + RxJava 2 如何检查表中某列等于特定值的记录

标签 java android kotlin rx-java2 android-room

我有一个用户表。我需要检查是否存在具有特定名称的用户。我正在使用此代码执行此操作

用户Dao

  @Query("SELECT * FROM User WHERE userName = :userName")
  fun getUserByUserName(userName :String) : Observable<User>

使用

  repository.getUserByUserName(input)
                .observeOn(mainThread())
                .subscribe(user -> {

                });

我订阅了这个Observable后,但这仅适用于存在这样的用户的情况,但如果该用户不在数据库中,则订阅不起作用。如何处理用户在数据库中和不在数据库中的情况?

最佳答案

你可以使用 Single(或者像 Beloo 建议的那样)而不是 Observable。

你可以尝试这样的事情:

repository.getUserByUserName(input)
                .observeOn(mainThread())
                .subscribe(user -> {

                }, 
                throwable -> {
                // catch your exception here.                   
                }));

关于java - Room + RxJava 2 如何检查表中某列等于特定值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61319793/

相关文章:

Java SWT 手动光标更改后不会自动更改光标

java - 如何遍历图 "forwards"和 "backwards"?

android - IsoDep APDU SELECT 返回 6FXX

java - 从 Activity B 返回到 Activity A 的 fragment

javascript - Kotlin转JS迭代器不起作用

java - 二叉树节点 - 哪条路?

java - HashSet<T>.removeAll 方法非常慢

android - 如何从 RAM 中完全解析压缩文件?

android-studio - Activity 没有零参数构造函数 - Dagger Hilt

java - Android Flex布局设置flexBasisPercent?