我正在使用今年Google I/O发布的新Room持久化库,目前效果非常好,但是无法按照UNICODE或LOCALIZED对结果进行排序。唯一有效的是NOCASE,但在我的情况下是无用的。
如果我按照上面的方式构建查询,就会出现错误:
是否有任何方法可以实现此功能?
@Dao
public interface ContactDao {
@Query("SELECT * FROM contact ORDER BY lastName COLLATE LOCALIZED")
Flowable<List<Contact>> getAll();
}
如果我按照上面的方式构建查询,就会出现错误:
Error:(21, 29) error: There is a problem with the query: [SQLITE_ERROR]
SQL error or missing database (no such collation sequence: LOCALIZED)
COLLATE LOCALIZED
,您需要在CREATE TABLE
语句中声明它作为列约束的一部分。似乎您可以使用“迁移”来编写自己的“CREATE TABLE”语句,但我不清楚如何为初始表格创建“迁移”(而不是升级)。我不知道是否是您提交了[此问题](https://issuetracker.google.com/issues/62007004),但我会密切关注它。 - CommonsWareCollections.sort(nameOfYourList) { o1, o2 -> Collator.getInstance(Locale.GERMAN).compare(o1.lastName, o2.lastName) }
- denwehrle