0

刚开始使用 Kotlin 流程。如果记录是唯一的,我基本上只想将一个项目插入房间数据库。我想我可能可以做到这一点,@Insert(onConflict = OnConflictStrategy.REPLACE)imageUrl永远是独一无二的。我总是需要检查plateText。

到目前为止,我已经得到了这个,我正在寻找可以优化它的方法。

override fun flowSaveSomeStuff(plateText: String, imageUrl: String): Flow<Boolean> {
    return db.infoDao().getItems().map { list ->
        list.none { it.plate == plateText }
    }.filter { it }.map {
        db.infoDao().insertItems(
            plateInfo(
                plateText,
                imageUrl
            )
        )
        true
    }
}

欢迎任何想法。

4

1 回答 1

0

为什么不在 if exists select 1 from (table name) where (id or imageUrl) = :(your parameter i.e imageUrl) 函数中使用 Query 它并返回 Boolean 如果它存在它将返回 true 否则返回 false

于 2020-09-21T10:31:30.603 回答