android - 房间用户可按查询配置顺序

标签 android android-room android-architecture-components

我正在迁移一个应用程序以使用普通 Sqlite 中的 Room,我遇到问题的一个部分是有几个查询有一个 order by 语句是用户可配置的,这意味着他们可以更改查看列表顺序的方式。

房间似乎不允许动态排序语句,因此我必须针对每个语句排序进行单独查询。

有没有人找到解决这个问题的更好方法,所以我可以有 1 个查询语句,其中唯一改变的是 order by 子句,而在我的情况下必须编写大约 15 个基本相同的额外查询语句?

最佳答案

我现在也遇到了同样的问题。可以做的是使用 CASE:

SELECT * FROM Table
ORDER BY 
CASE WHEN :parameter = 1 THEN Column END ASC,
CASE WHEN :parameter = 2 THEN Column2 END DESC

但我假设您也在使用 ViewModel,因此您可能每次都必须重新初始化它。我认为这种方式比编写 15 个查询要好一点,但可能没有那么紧凑。

answer也有一个很好的例子,但我相信逻辑是相反的。

关于android - 房间用户可按查询配置顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50104554/

相关文章:

android - 奇怪的 Android 错误 : **** ERROR unknown type 0x73736572 (glSizeof, 72)

android - Android设备上隐藏了滚动条,如何显示垂直滚动条?

java - 房间数据库实体初始化

android - Room 无法验证数据完整性。看起来您已更改架构但忘记更新版本号

android - 如何使用 xml 设置 EditText 的边距?

android - 如何在android中为 GridView 实现onclickevent和ontouchevent

android - 房间与条件的关系

android - 旋转屏幕时保留具有 fragment 范围的 ViewModel

android - 导航拱形组件和 fragment 娱乐

java - 如何在 RecyclerView Adapter 中使用架构组件 ViewModel?