c'è un modo per ordinare da un campo in una tabella correlata con greenDao? Per esempio. Ho un tavolo di macchine e un tavolo di autisti. Ogni macchina ha un autista. Ora desidero richiedere le auto (ad esempio blu) e ordinare per nome del drivergreendao ordina per campo nella tabella correlata
risposta
In QueryBuilder, esistono metodi per specificare l'ordine di ordinamento. Cerca i metodi che iniziano con "ordine ...", ad es. orderAsc (Proprietà).
Io gioco in giro con GreenDao anche in questo momento e spero che la mia piccola aggiunta al commento nella prima risposta e la descrizione nel queries part of the greenDao documentation aiuti.
Il seguente frammento dovrebbe funzionare (non provarla :)):
Query query = carsDao.queryRawCreate( ", driver D WHERE T.COLOR='blue' AND T.DRIVER_ID=D._ID ORDER BY D.NAME ASC");
Questo crea internamente un simile SQL per questo:
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
viene creata la prima parte della dichiarazione per te con il metodo queryRawCreate, il resto è l'istruzione sql personalizzata che è stata passata a queryRawCreate
.
Vedere this question se ci si chiede dove si trova l'istruzione JOIN.
È possibile utilizzare i QueryBuilder con i Dao creati dall'ORM greendao.
Definire prima di utilizzare
ProductDao productDao;
DaoSession daoSession;
Si consiglia di posizionare la DaoMaster e DaoSession nel vostro campo di applicazione. All'interno di onCreate() della classe che estende Application.
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(getApplicationContext(), "app-db", null);
SQLiteDatabase db = helper.getWritableDatabase();
daoSession = new DaoMaster(db).newSession();
inizializzazione prima di utilizzare
daoSession = ((MyApplication) getApplication()).getDaoSession();
productDao = daoSession.getProductDao();
È possibile ordinare i risultati come questo per visualizzare l'attività.
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. Amministratore sonata - Campo "ordina per" nella tabella correlata
- 2. Ordina per nome nella tabella Sankey
- 3. Ordina per CAMPO in MYSQL
- 4. Doctrine2 findBy() ordina per campo di tabella unito
- 5. Ordina per campo con SQLite
- 6. Ordina per campo in cakephp
- 7. MySQL: Ordina per dimensione del campo/lunghezza
- 8. MySQL: ORDINA PER CAMPO/GRUPPO PER
- 9. Ordine Laravel in base alla tabella correlata
- 10. Js lodash ordina per campo più profondo
- 11. Wordpress query_posts Ordina per campo personalizzato
- 12. Ordina un'intera tabella SQLite
- 13. Rails - Ordina per dati tabella join
- 14. Selezione Django correlata nella richiesta grezza
- 15. Ricerca per entità correlata
- 16. Ordina una tabella [] in Lua
- 17. .SelezionaMany() e recupera dati da più di una tabella correlata
- 18. Rails ActiveAdmin: mostra la tabella di una risorsa correlata nella stessa vista
- 19. Ordina per datetime mysql
- 20. Errori di convalida del database. Consenti valore nullable in una tabella ma non nella tabella correlata (normalizzata)
- 21. Ordina per COUNT per valore
- 22. Modo corretto per aggiungere colonne indice in greenDao?
- 23. Selezionare il record più recente nella tabella (campo datetime)
- 24. Ordina array di oggetti dal campo data
- 25. ORDINA DA "campo ENUM" in MYSQL
- 26. greenDAO 40 secondi per inserire 600 record
- 27. Due indici con lo stesso campo nella tabella MySQL
- 28. ordina csv per colonna
- 29. manca il freemaker.jar di GreenDao
- 30. GreenDAO - chiave primaria su più colonne
Oh, aspetta, non ci uniamo ancora. ;) Suppongo tu debba scrivere qualche query personalizzata (grezza) per ora. –
si è appena riprovato dopo aver risposto e ottenuto de.greenrobot.dao.DaoException: la proprietà 'foo' non fa parte della barra Hai un esempio su come farlo con una query non elaborata? I metodi di ordine – ligi
non sono disponibili su un querybuilder. –