在使用 Android Room 做 Query 時,有時不見得會找到想要的資料,所以當結果有可能是空的的時候,需要有個回傳值可以做後續處理。
以下面的 Query 為例子,某個 id 的 Magazine 就不見得找得到。
@Query("SELECT * FROM bookmark WHERE id=:id")
fun getMagazine(id: String): Maybe<Magazine>
從 Single
dataSource.getMagazine(id)
.doOnSuccess { // 有值的情況 }
.doOnError { // 失敗的情況 }
.doOnComplete { // Query 不到資料的情況 }
.subscribe()