2012-04-23 6 views
5

ORMLite DAOのケースから無意識にデータオブジェクトを注文したいと考えています。私は敏感に私の所有者項目のケースを注文するには、以下のsqliteのコードを使用しています現在アンドロイドのormliteとsqliteで大文字と小文字を区別しない順

:私はSQLiteのhereを参照してください

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

は、以下の生のSQLと「順」大文字小文字を区別しないをサポートしています。

SELECT * FROM owner ORDER BY Name COLLATE NOCASE 

希望の接尾辞を追加する簡単な方法(queryRaw()を呼び出すより簡単)?

DatabaseField annotationcolumnDefinitionプロパティをTEXT COLLATE NOCASEに設定することはできますか?

+0

あなたは 'orderBy(" Name COLLATE NOCASE "、true)'しようとしましたか? – zapl

+1

私はそれについて考えましたが、たとえそれが機能しても、ORMLiteの将来のバージョンと壊れる可能性があります。 – Diederik

答えて

16

あなたが望むのはQueryBuilder.orderByRaw(String) methodです。生の文字列がが文字列のORDER BY一部が含まれていません

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

お知らせ:それは次のようになります。 javadocsを引用するには:

SQLクエリステートメントに未処理のSQL「ORDER BY」句を追加します。これには "ORDER BY"は含まれません。

TEXT COLLATE NOCASEcolumnDefinition私はそれをまったく使用した経験はありませんが、動作する可能性があります。カラム名と引用符をエスケープするために、通常ORMLite試行が間違った場所になりますので、

また、私はorderBy("Name COLLATE NOCASE", true)答えを使用することはありません。

+0

orderByRaw( "名前の一括削除")は期待通りに機能します。おかげでグレー – Diederik

関連する問題