android - 如果没有可用的结果,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
并且不会导致异常,它似乎也可以正常工作。知道我在这里缺少什么吗?
解决方案
推荐阅读
- python - SyntaxError:无效的语法?评估()
- c++ - 使用结构读写二进制文件
- google-app-maker - 超出条件行颜色和最大调用堆栈大小
- spring-boot - Kotlin Spring Reactive Webflux - 处理 WebClient 错误
- html - 用背景图像创建两个有角度的 div 的最佳方法?
- reactjs - 渲染大量项目会阻止其他功能在渲染完成之前工作
- r - 如何将新数据分配给R中变量内的变量
- php - 在 laravel 中保留当前选项卡视图页码
- python-3.x - 即使直接从 Chrome 检查中复制,XPath 也不起作用
- go - 为什么这个版本标签会导致错误?