Room + RxJava 2 如何检查 table 中列等于特定值的记录
Room + RxJava 2 How to check for a record in a table in which a column is equal to a specific value
我有一个用户table。我需要检查是否存在具有特定名称的用户。我正在使用此代码执行此操作
UserDao
@Query("SELECT * FROM User WHERE userName = :userName")
fun getUserByUserName(userName :String) : Observable<User>
正在使用
repository.getUserByUserName(input)
.observeOn(mainThread())
.subscribe(user -> {
});
我订阅了这个Observable之后,但这只适用于存在这样一个用户的情况,但是如果用户不在数据库中,订阅就不起作用。如何处理用户在数据库中和用户不在数据库中的情况?
您可以使用 Single(或 Beloo 建议的 Maybe)代替 Observable。
您可以尝试这样的操作:
repository.getUserByUserName(input)
.observeOn(mainThread())
.subscribe(user -> {
},
throwable -> {
// catch your exception here.
}));
我有一个用户table。我需要检查是否存在具有特定名称的用户。我正在使用此代码执行此操作
UserDao
@Query("SELECT * FROM User WHERE userName = :userName")
fun getUserByUserName(userName :String) : Observable<User>
正在使用
repository.getUserByUserName(input)
.observeOn(mainThread())
.subscribe(user -> {
});
我订阅了这个Observable之后,但这只适用于存在这样一个用户的情况,但是如果用户不在数据库中,订阅就不起作用。如何处理用户在数据库中和用户不在数据库中的情况?
您可以使用 Single(或 Beloo 建议的 Maybe)代替 Observable。
您可以尝试这样的操作:
repository.getUserByUserName(input)
.observeOn(mainThread())
.subscribe(user -> {
},
throwable -> {
// catch your exception here.
}));