Apache Ignite Cacheからデータを取得し、JSPで表示する必要があります。データサイズは100万であるので、サーバー側のページ設定を設定する必要があります。 Apache Igniteのドキュメントでは、pageSizeを設定する以外は、デフォルトで1024に設定されています。startIndexとendIndexを渡すにはどうすればいいですか。基本的に、データベースでページネーションを実装するときに渡すパラメータです。 たとえば、以下のサンプルコードでクエリキャッシュを使用していますが、特定のパラメータを渡すことでページネーションを適用できますか?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;
}
おかげ
返信いただきありがとうございます。上記のコードでわかるように、私はpageSizeを試してみました。しかし、それは動作しません。私はpageSizeを10に設定しますが、predicateに一致するレコードは20ではなく、10の代わりに20レコードを取得します。 私のアプローチはpagesSizeを追加し、skip()メソッドを使用してページネーションを達成することでした。 pageSizeが設定されているかどうかにかかわらず、なぜすべてのレコードを返すのか。 ? – Surinder