不区分大小写为了通过与机器人ormlite和SQLite(Case insensitive orde

2019-09-16 16:54发布

我想不区分大小写从ORMLite DAO情况下,为了我的数据对象。

目前我使用下面的代码的SQLite敏感地为了我的主人的项目情况:

ownerDao.queryBuilder().orderBy("Name", true).query();

我看到这里是sqlite的“按订单”支持不区分大小写具有以下原始SQL:

SELECT * FROM owner ORDER BY Name COLLATE NOCASE

没有简单的方法(不是调用更容易queryRaw()添加所需的后缀)?

可能的替代解决方案是设置columnDefinition对房地产DatabaseField注释到TEXT COLLATE NOCASE

Answer 1:

我认为,你想要的是使用QueryBuilder.orderByRaw(String)方法 。 它看起来是这样的:

ownerDao.queryBuilder().orderByRaw("Name COLLATE NOCASE").query();

注意原始字符串包含ORDER BY字符串的一部分。 引述的javadoc :

“ORDER BY”子句中添加原始SQL的SQL查询语句。 这不应该包括“ORDER BY”。

TEXT COLLATE NOCASE columnDefinition可能的工作,虽然我没有用,在所有的经验。

另外,我也不会orderBy("Name COLLATE NOCASE", true)因为通常的回答ORMLite试图逃跑列名和引号是放错了地方。



文章来源: Case insensitive order by with ormlite and sqlite in android