2016-03-24 7 views
2

Wie kann ich erste N-Element aus Realm-Datenbank auswählen. Nun verwende ich diesen Code N Elemente auszuwählen:Android Realm finden erste N-Element

Realm.getDefaultInstance() 
.where(MyObject.class) 
.findAllSorted("myField", Sort.DESCENDING) 

Aber dieser Wählvorgang ist zu lang. Ich brauche SQL 'LIMIT' Operation analog.

+0

Eine Lösung ist in dieser Antwort: http://stackoverflow.com/a/39689393/2002079 – ahmadalibaloch

Antwort

1

Einfache

int N=10; // whatever value you want 
Realm mRealm=Realm.getDefaultInstance(); 

RealmResults<Example> list= mRealm.where(Example.class).findAll(); 
list.subList(0,N); 
+1

listlist wird Liste Auflistung zurück, die nicht als RealmResult arbeiten wird. –

+0

ja Liste wird zurückgegeben .... wenn Sie wollen, ReamResults dann tut mir leid, es gibt keine direkte Lösung für das von Realm in Android – saksham

0

Mögliche doppelte Da ich schon posted die Lösung hier: Limit Realm results

Ich fand die Lösung für achi dieser Vorabend nach so vielen Tagen „zwischen“ Abfrage, wie in den offiziellen Dokumenten gefunden https://realm.io/docs/java/latest

Wenn Sie erste N Elemente holen wollen, einfach mit der Zählung ab und zu mit Feldnamen übergeben, wie unten

realm.where(clazz).between("count",0,1000).findAll(); 

wo,

"count" = Feldname (dh Variablennamen in Ihrem pojo)
"0" = Spanne
"1000" = Bereich bis

Zum Beispiel: Die obige Abfrage holt zuerst 0 bis 1000 als RealmResults.

Hinweis: Die obige Lösung funktioniert nur, wenn Sie eine eindeutige ID mit Zeilenanzahl haben. In meinem Fall habe ich den Zählwert manuell eingefügt, bevor ich die Werte in Realm eingefügt habe.