Kotlin Android Room 数据库删除查询问题

Posted

技术标签:

【中文标题】Kotlin Android Room 数据库删除查询问题【英文标题】:Kotlin Android Room Database Delete Query Problem 【发布时间】:2021-01-06 07:43:27 【问题描述】:

我的代码需要一些帮助。我正在尝试通过 uid 从我的房间数据库中删除多个项目,但即使它处于循环中,它也只会删除它找到的第一个项目,仅此而已......

我的道的样本:

@Query("DELETE FROM itementity WHERE uid = :itemUid")
fun deleteByUid(itemUid: String)

我如何删除多个项目:

    GlobalScope.launch(Dispatchers.IO)
        itemsObject.forEach 
            db.itemDao().deleteByUid(it.uid)
        
        
    

【问题讨论】:

【参考方案1】:

你可以试试这样的:

@Query("DELETE FROM itementity WHERE uid IN (:uidList)")
fun deleteAllInList(uidList: Array<String>)

现在您只需将itemsObject 作为参数传递即可将其删除。

让我知道它是否有效,我就是这样做的,但 LongArray 不是 Array&lt;String&gt; 所以我不确定它是否有效。

【讨论】:

以上是关于Kotlin Android Room 数据库删除查询问题的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 数据类、Android Room 和自定义设置器

在 Android 中将 MySql 查询转换为 SQL Room 查询 - kotlin

Android Kotlin Room 与Flow的应用 demo 添加数据并展示

Android:如何使 Kotlin 中所有对象列表的类型转换器(用于 Room)通用

Android的room数据库使用小结(kotlin)

android room史上最快速入门教程(kotlin版本)