gpt4 book ai didi

database - Room @Query 注释字符串字段不带引号

转载 作者:搜寻专家 更新时间:2023-10-30 20:33:28 25 4
gpt4 key购买 nike

我有一个像这样的 DAO 方法:

@Query("SELECT * FROM Libs where :field like :search")
fun findLib(search:String,field:String): List<Lib>

我想按原样替换 field,但 Room 在生成的代码中为其添加了引号。例如我想 findLib("james%","author") 来生成这个 SQL:

SELECT * FROM Libs where author like "james%"

但是它生成了这个:

SELECT * FROM Libs where "author" like "james%" 

我怎样才能强制它不嵌入引号?

最佳答案

据我所知,SQLite 不支持列名参数。因此,您在滥用 Room。正确的用例是这样的:

@Query("SELECT * FROM Libs WHERE author LIKE :search")
fun findLib(search:String): List<Lib>

用法:findLib("james%")

关于database - Room @Query 注释字符串字段不带引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55705128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com