我想从ORMLite DAO的情况下不敏感地订购我的数据对象.
目前我正在使用以下sqlite代码来区分我的所有者项:
ownerDao.queryBuilder().orderBy("Name", true).query();
Run Code Online (Sandbox Code Playgroud)
我在这里看到sqlite支持不区分大小写的"order by"和以下原始SQL:
SELECT * FROM owner ORDER BY Name COLLATE NOCASE
Run Code Online (Sandbox Code Playgroud)
queryRaw()添加所需后缀的任何简单方法(比调用更容易)?
另一种解决方案是columnDefinition将DatabaseField注释的属性设置为TEXT COLLATE NOCASE?
Gra*_*ray 17
我想你想要的是使用这个QueryBuilder.orderByRaw(String)方法.它看起来像:
ownerDao.queryBuilder().orderByRaw("Name COLLATE NOCASE").query();
Run Code Online (Sandbox Code Playgroud)
注意原始字符串并没有包含ORDER BY字符串的一部分.引用javadocs:
将原始SQL"ORDER BY"子句添加到SQL查询语句中.这不应该包括"ORDER BY".
在TEXT COLLATE NOCASE columnDefinition可能的工作,虽然我没有用,在所有的经验.
此外,我不会使用orderBy("Name COLLATE NOCASE", true)答案,因为通常ORMLite试图转义列名称,引号将在错误的位置.
| 归档时间: |
|
| 查看次数: |
7039 次 |
| 最近记录: |