如何添加直接从UI androidKotlin房间数据库输入查询的能力

uidvcgyl  于 2023-03-16  发布在  Android
关注(0)|答案(1)|浏览(111)

我在fragment上有一个EditText,我想直接在这里输入一个查询,没有为这个函数预先安装Query注解。

@Query(":query")
fun getList(query: String): Flow<List<String>>

在我视图中模型:

getList("SELECT * FROM my_table").collect {
    // retrieve data
}

但是,此方法会引发错误:

error: Must have exactly 1 query in the value of @Query or @DatabaseView

是否可以直接通过UI向ROOM database写入查询?

s3fp2yjn

s3fp2yjn1#

首先,向用户提供对数据库的访问是错误的,一个错误的查询就可能删除重要的数据。
也就是说,这个错误是因为room为了验证SQL查询而预先编译了查询,在编译的时候抛出了这个错误,所以我认为在room中完全动态的查询是不可能的。
但是你可以试试这个hack

相关问题