はgreenDaoと、関連テーブルのフィールドでソートする方法はありますか?例えば。私は車のテーブルとドライバーのテーブルを持っています。各車には運転手がいます。今、私はQueryBuilderでドライバgreendaoソート
5
A
答えて
4
の名前で(例えば青)車やソートを照会したい、ソート順を指定する方法があります。 "order ..."で始まるメソッドを探します。 orderAsc(プロパティ)。
4
は、私はあまりにも現時点でGreenDaoで遊んでと最初の回答にコメントしてqueries part of the greenDao documentationの記述に私の小さな追加ができます願っています。
次のスニペットは動作するはず(それをテストしていない:)):
Query query = carsDao.queryRawCreate( ", driver D WHERE T.COLOR='blue' AND T.DRIVER_ID=D._ID ORDER BY D.NAME ASC");
これは内部的にこれにSQLの似作成します。文の最初の部分が作成される
SELECT T.'id', T.'name', T.'color', T.'driver_id'
FROM cars T, driver D
WHERE T.COLOR='blue'
AND T.DRIVER_ID=D._ID
ORDER BY D.NAME ASC
をqueryRawCreateメソッドによって、残りはqueryRawCreate
に渡されたカスタムSQL文です。結合文がどこにあるだろう場合
はthis questionを参照してください。
0
あなたは、ダオのgreendaoのORMによって生成されたものとQueryBuildersを使用することができます。あなたがあなたの適用範囲内DaoMasterとDaoSessionを置くべき
ProductDao productDao;
DaoSession daoSession;
を使用する前に
を定義します。アプリケーションを拡張するクラスのonCreate()の内部。
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(getApplicationContext(), "app-db", null);
SQLiteDatabase db = helper.getWritableDatabase();
daoSession = new DaoMaster(db).newSession();
初期あなたが
daoSession = ((MyApplication) getApplication()).getDaoSession();
productDao = daoSession.getProductDao();
を使用する前に、このような結果は、アクティビティに表示するように並べ替えることができます。
private void refreshProducts() {
switch (sorted_by){
case SORT_BY_DATE:
cardItems = productDao.queryBuilder().orderAsc(ProductDao.Properties.Id).list();
setupRecyclerView();
break;
case SORT_BY_PRICE:
cardItems = productDao.queryBuilder().orderDesc(ProductDao.Properties.Price).list();
setupRecyclerView();
break;
case SORT_BY_POPULARITY:
cardItems = productDao.queryBuilder().orderDesc(ProductDao.Properties.Name).list();
setupRecyclerView();
break;
}
}
関連する問題
- 1. Greendao:
- 2. greenDaoデータベース
- 3. GreenDAO左
- 4. エラーgreenDAO
- 5. アンドロイドGreenDao
- 6. greenDAO queryBuilder with join
- 7. GreenDaoで、AND
- 8. GreenDaoバージョン変更
- 9. GreenDao。 N:M関係
- 10. GreenDAO groupby句
- 11. GreenDao、insertOrReplaceを挿入
- 12. GreenDAO:変更を観察
- 13. where QueryBuilder on condition greenDao android
- 14. GreenDao- android.database.sqlite.SQLiteException:テーブルTAREASには、
- 15. greenDAOとジャクソンの統合
- 16. greenDAOとSQLCipherの統合
- 17. GreenDaoでDISTINCTを使用する方法
- 18. junitテスト用のgreenDAOセッションオブジェクトの設定
- 19. greendaoのdbとセッションからの削除
- 20. GreenDao - アンドロイド - ONUPGRADE(暗号化されたデータベース)
- 21. greenDAOエンティティにカスタムコードを追加する
- 22. greenDAOアップデートとupdateInTxが動作しない
- 23. Android GreenDao条件付き一意プロパティ
- 24. GreenDAO - 複数の列の主キー
- 25. n:mの関係を持つGreenDaoディープクエリー
- 26. ActiveAndroidからGreenDaoに切り替え
- 27. greendaoそのようなテーブルなし
- 28. GreenDAOはテーブル間の複数の関係をサポートします
- 29. greenDAOはアプリの1つのフレーバーのみです
- 30. GreenDao外部キーの概念と1対多の関係
ああ、まだ参加していません。 ;)あなたは今、いくつかのカスタム(生の)クエリを書く必要があると思います。 –
いやはちょうどあなたが返事した後に再度試してみましたde.greenrobot.dao.DaoExceptionだ:プロパティ「fooは」あなたは生のクエリでそれを行う方法の例を持っていますバー の一部ではないでしょうか? – ligi
注文方法はquerybuilder.joinでは利用できません –