gpt4 book ai didi

android - 如何将 Order By 参数传递给 Room @Query?

转载 作者:行者123 更新时间:2023-12-04 17:47:00 37 4
gpt4 key购买 nike

我的 Dao 中有这样的东西:

@Query("select * from orders ORDER BY time desc")
fun getAllOrders(): DataSource.Factory<Int, Order>

但是我想做这样的事情:

@Query("select * from orders ORDER BY :order :orderDirection")
fun getAllOrders(order:String, orderDirection:String): DataSource.Factory<Int, Order>

知道如何实现吗?编译器说:

Error:(9, 1) error: extraneous input ':orderDirection' expecting {, ';', ',', '=', '*', '+', '-', '||', '/', '%', '<<', '>>', '&', '|', '<', '<=', '>', '>=', '==', '!=', '<>', K_ALTER, K_ANALYZE, K_AND, K_ASC, K_ATTACH, K_BEGIN, K_BETWEEN, K_COLLATE, K_COMMIT, K_CREATE, K_DELETE, K_DESC, K_DETACH, K_DROP, K_END, K_EXPLAIN, K_GLOB, K_IN, K_INSERT, K_IS, K_ISNULL, K_LIKE, K_LIMIT, K_MATCH, K_NOT, K_NOTNULL, K_OR, K_PRAGMA, K_REGEXP, K_REINDEX, K_RELEASE, K_REPLACE, K_ROLLBACK, K_SAVEPOINT, K_SELECT, K_UPDATE, K_VACUUM, K_VALUES, K_WITH, UNEXPECTED_CHAR}

我也试过这个:(将 'time desc' 作为参数传递)但是 Room 忽略了它。

@Query("select * from orders ORDER BY :order")
fun getAllOrders(order:String): DataSource.Factory<Int, Order>

有什么想法吗?

最佳答案

这是您的 SQL 查询中的语法错误。

确保在形成查询时,在每行末尾放置一个空格。

尝试使用这种类型的查询来传递参数

@Query("SELECT * FROM " + "UGC"
+ " WHERE "
+ UGC_USER_ID + "=" + ":userID"
+ " AND "
+ UGC_ID + "=" + ":id"
+ ";")
fun getUgcData(userID:Integer,id:Integer):List<Ugc>

关于android - 如何将 Order By 参数传递给 Room @Query?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48044571/

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