Ich muss Daten aus Apache Ignite Cache ziehen und zeigen es auf JSP. Die Datengröße ist in Millionen, daher muss ich die Seitenumbrüche auf der Serverseite einrichten. Apache Ignite docs sagt nicht viel über Paginierung aus, außer dass pageSize für die Abfrage gesetzt wird, die standardmäßig 1024 ist. Wie übergebe ich startIndex und endIndex, im Grunde die Parameter, die wir übergeben, wenn wir die Paginierung mit Datenbank implementieren. Zum Beispiel habe ich unter Beispiel-Code zu Abfrage-Cache, können wir Paginierung anwenden, indem Sie bestimmte Parameter übergeben.Paginierung Feature in Apache Ignite
public Set<String> getData(int pageSize){
Ignite ignite = Ignition.start("examples/config/example-ignite.xml");
CacheConfiguration<Integer, String> config = new CacheConfiguration<>("mycache");
config.setBackups(1);
IgniteCache<Integer, String> cache = ignite.getOrCreateCache(config);
long dataSize = 30;
for (int i = 1; i < dataSize; i++) {
cache.put(i, String.valueOf(i));
}
ScanQuery<Integer, String> query = new ScanQuery<>((Integer e1, String e2) ->e1>10);
Set<String> res = cache.query(query.setPageSize(pageSize)).getAll().stream().map(Cache.Entry::getValue).collect(toSet());
System.out.println(res);
return res;
}
Dank
Danke für Ihre Antwort. Ich habe pageSize versucht, wie Sie oben im Code sehen können. Aber es funktioniert nicht. Ich setze pageSize auf 10, während keine Datensätze mit Prädikat 20 sind, bekomme ich immer noch 20 statt 10 Datensätze. Angenommen, das sollte funktionieren, Mein Ansatz war das Hinzufügen von pagesSize und die skip() -Methode, Paginierung erreicht werden kann. Eine Idee, warum alle Datensätze zurückgegeben werden, unabhängig davon, ob pageSize gesetzt ist oder nicht. ? – Surinder