Android Room Query никогда не вернет null? - PullRequest
0 голосов
/ 04 марта 2020
class LottoRepository(private val dao: LottoDao) {

    suspend fun getLotto(gameNum: Int): LiveData<Lotto> {

        if (dao.getLotto(gameNum) != null) { // This line shows me a tooltip that says it's always true

        }

    }
}

@Dao
interface LottoDao {

    @Query("SELECT * FROM lotto_numbers_table WHERE game_num = :gameNum")
    fun getLotto(gameNum: Int): LiveData<Lotto>

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertLottos(vararg lottos: Lotto)
}

@Entity(tableName = "lotto_numbers_table")
data class Lotto (
    @PrimaryKey @Json(name = "drwNo") @ColumnInfo(name = "game_num")
    val gameNum: Int,
    @Json(name = "drwNoDate") val date: String,
    @Json(name = "drwtNo1") val num1: Int,
    @Json(name = "drwtNo2") val num2: Int,
    @Json(name = "drwtNo3") val num3: Int,
    @Json(name = "drwtNo4") val num4: Int,
    @Json(name = "drwtNo5") val num5: Int,
    @Json(name = "drwtNo6") val num6: Int,
    @Json(name = "bnusNo") val bonusNum: Int,
    @Json(name = "totSellamnt") val totalSale: Long,
    @Json(name = "firstWinamnt") val firstWinnerReward: Long,
    @Json(name = "firstPrzwnerCo") val firstWinnerCount: Int,
    @Json(name = "firstAccumamnt") val firstWinnerTotalReward: Long
)

Это мои коды, и я хотел проверить, существует ли строка, совпадающая с gameNum. Но когда я проверяю нулевое значение, Android Studio выдает мне сообщение, в котором говорится, что это всегда правда. Я думаю, что это должно быть NULL, если в базе данных нет соответствующей строки.

Сообщение "Условие" dao.getLotto (gameNum)! = Null 'всегда' true ''

1 Ответ

0 голосов
/ 04 марта 2020

Значение Livedata (dao.getLotto(gameNum).value) может быть нулевым, но экземпляр Livedata не будет нулевым. Это что-то вроде List<Lotto>, в списке может не быть экземпляра Lotto, но экземпляр List не равен нулю [учитывая, что список создан]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...