Apache Ignite Cache에서 데이터를 가져 와서 JSP로 표시해야합니다. 데이터 크기가 백만 개이므로 Server 쪽 페이지 매김을 설정해야합니다. 아파치 Ignite 워드 프로세서는 기본적으로 1024 페이지를 쿼리하기 위해 pageSize를 설정하는 것을 제외하고는 페이지 매김에 대해별로 말하지 않습니다. 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;
}
감사
의 Ignite
감사합니다. 위의 코드에서 볼 수 있듯이 pageSize를 시도했다. 그러나 그것은 효과가 없습니다. 술어와 일치하는 레코드가 20인데 pageSize를 10으로 설정했지만, 여전히 10 대신 20 레코드가 남았습니다. 내 생각에 페이지 크기를 추가하고 skip() 메서드를 사용하여 페이지 매김을 달성 할 수있었습니다. 왜 모든 pageSize가 설정되어 있는지 여부에 상관없이 모든 레코드를 반환하는 모든 아이디어. ? – Surinder