【发布时间】:2017-10-29 16:03:48
【问题描述】:
我正在使用新的 Android ORM Room。 我遇到了以下问题,使用带有参数的 ORDER BY 的查询不起作用。
如果我想使用从 ORDER BY 的参数填充的字段,它不起作用。它只是不排序任何东西。
@Query("SELECT * FROM User ORDER BY :orderBY ASC")
List<User> sortedFind(String orderBY);
但是,当我将 ORDER BY 列直接放在查询中以对结果进行排序时,它会按预期工作。
@Query("SELECT * FROM User ORDER BY name ASC")
List<User> sortedFind();
这是 Android Room 的错误,还是我做错了什么?
【问题讨论】:
-
我的猜测是他们不希望查询的那部分是可变的。 AFAIK,如果您在没有 Room 的情况下直接使用 SQLite,SQLite 也不支持
SELECT * FROM User ORDER BY ? ASC。 -
@CommonsWare 是的。有道理。。谢谢回复。
-
为了避免编写多个查询,这将是 Room 中的一个很棒的功能。
标签: android android-room android-architecture-components