- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
DataStream aus dataaccess
Hi,
ich habe ein Plugin erstellt, welches aus einer Datenquelle Objekte liefert. Dabei implementiere ich das DataStream Interface in meinem Plugin, welches dem ContentCreator die Liste an Ergebnissen liefert.
Meine eigentliche Query liefert mehr als 30 Ergebnisse. รber den DataStream wird die "List<D> getNext(int count)" Methode gecallt, allerdings werden hier nicht alle Ergebnisse abgefragt. Nach 25 Eintrรคgen scheint der ContentCreator an dieser Stelle bereits zufrieden zu sein (mรถglicherweise ist 25 ein default Wert).
Das zusรคtzliche Problem ist, dass der ContentCreator auch keine weiteren Eintrรคge nachladen tut, sofern ich ans untere Ende der Liste Scrolle.
Daher die Frage: Habe ich die Mรถglichkeit den "count" in irgend einer Art zu konfigurieren?
Setzte ich folgenden Hack in die Implementierung meiner getNext Methode:
count = count * 2
oder auch
count = count + 1
bekomme ich im ersten Fall alle Treffer direkt. Im zweiten Fall werden auf einmal sogar Eintrรคge nachgeladen sofern ich ans Ende der Liste scrolle.
Mir wรคre es lieber ich habe die Mรถglichkeit den Count zu konfigurieren. Kann mir hier jemand weiterhelfen?
- Labels:
-
Q and A
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Matthias,
die Anzahl der angefragten Ergebnisse ist nicht konfigurierbar und ich meine sogar vom Client (SA/CC) abhรคngig.
Bist Du sicher, dass Du auch die weitere Methode hasNext() richtig implementiert hast? Die sollte true liefern, solange die jeweiligen Aufrufe von getNext() noch nicht alles "bekommen" haben was Du liefern "kรถnntest", insbesondere soll sie nicht schon false liefern wenn Du "intern" (also im DataStream) zwar schon alle Elemente hast, sie aber noch nicht durch die getNext()-Aufrufe "ausgeliefert" wurden.
Hintergrund ist letztlich, dass dadurch ein LazyLoading ermรถglicht wird. Der Client fragt das Plugin nach den ersten X Elementen und schickt dann erst beim Scrollen (also wenn es "nรถtig" ist) eine Anfrage nach den nรคchsten Y (es kรถnnte sein, dass X und Y nicht gleich sind).
Allgemeiner Tipp: Darum ist es รผbrigens auch wichtig, in der DataStream-Implementierung - soweit mรถglich - nicht alle Objekte schon initial zu holen und bei den einzelnen getNext()-Aufrufen nur "scheibchenweise auszuliefern". Vielmehr sollten die Objekte nur "on demand" (d.h. beim jeweiligen getNext()) geholt werden - ggf. mit ein bisschen Lookahead.
รbrigens: Soweit ich es im Kopf habe, darf ein getNext() sogar weniger Elemente liefern als "angefragt" wurden, auch wenn es weitere gibt.
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Michael,
das Problem war, dass die getTotal() Berechnung nicht das korrekte Ergebnis geliefert hat. Problem hat sich somit erledigt. Danke ๐
VG Matthias

