首页 > 解决方案 > 如果没有可用的结果,Room 返回 IndexOutOfBoundException

问题描述

我在 Room 中定义了这个函数:

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Quer


@Dao
interface PlaceDao {

@Query("SELECT * from place_table")
suspend fun getAllPlaces(): List<Place>

// This query throws IndexOutOfBoundsException 
@Query("SELECT * FROM place_table WHERE masterId IN (:guid)")
suspend fun getPlacesByGuids(guid: List<String>): List<Place>?

}

但是,每当我调用getPlacesByGuids没有可用位置的 guid 传递列表时,它不会place_table返回空列表或 null,它会引发 IndexOutOfBoundException。getAllPlaces另一方面,即使没有任何内容place_table并且不会导致异常,它似乎也可以正常工作。知道我在这里缺少什么吗?

标签: androidandroid-sqliteandroid-room

解决方案


推荐阅读