Room + Rx Java 2 Как проверить запись в таблице, столбец которой равен заданному значению c - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть таблица пользователей. Мне нужно проверить, существует ли пользователь с указанным c именем. Я делаю это с помощью этого кода

UserDao

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

Используя

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

                });

После того, как я подпишусь на это Observable, но это работает только для случая, когда такой Пользователь существует, но если пользователь не находится в базе данных, подписка не работает. Как я могу справиться с ситуацией, когда пользователь находится в базе данных, а когда его нет?

1 Ответ

1 голос
/ 20 апреля 2020

Вы можете использовать Одиночный (или Может быть, как предложил Белоо) вместо Наблюдаемого.

Вы можете попробовать что-то вроде этого:

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

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