我使用的是在今年的谷歌I/O发布了新的Room Persistance Library和它的工作很大,到目前为止,但不知何故,它无法订购与UNICODE或属地化结果。唯一的工作是NOCASE这是无用的在我的情况。间持久化图书馆查询COLLATE本地化工作不
有什么办法可以实现这个功能吗?
@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”语句中的列约束。看起来你可以使用'Migration'来编写你自己的'CREATE TABLE'语句,尽管我不清楚如何为初始表创建(而不是升级)创建一个'Migration'。我不知道你是否是提交[这个问题]的人(https://issuetracker.google.com/issues/62007004),但我会密切关注它。 – CommonsWare
嗨,你解决了吗? –
不是......目前我只是在使用之前对列表进行排序。 'Collections.sort(nameOfYourList){o1,o2 - > Collator.getInstance(Locale.GERMAN).compare(o1.lastName,o2.lastName)}' – denwehrle