Cassandra zapytanie z paginacją

0

Mam problem z paginacją wyników. Używam biblioteki DataStax. Ustawiam maksymalną ilość wyników na 3 a i tak dostaję całość.

public <T> ResultWrapper<T> executeStatement(String statement, Class<?> clazz, Object... parameters) {
		Mapper mapper = mappingManager.mapper(clazz);
		PreparedStatement preparedStatement = session.prepare(statement);
		BoundStatement boundStatement = null;
		
		if(parameters != null && parameters.length > 0) {
			boundStatement = preparedStatement.bind(parameters);
		} else {
			boundStatement = preparedStatement.bind();
		}
		
		if(pagingState != null) {
			boundStatement.setPagingState(PagingState.fromString(pagingState));
		}
		
		boundStatement.setFetchSize(fetchSize);	
		
		ResultSet resultSet = session.execute(boundStatement);
		PagingState pagingState = resultSet.getExecutionInfo().getPagingState();
		
		ResultWrapper resultWrapper = new ResultWrapper<T>();
		resultWrapper.setResults(mapper.map(resultSet).all());
		if(pagingState != null) {
			resultWrapper.setPagingState(pagingState.toString());
		}
		
		return resultWrapper;
	}

wie ktoś dlaczego?

0

wykminiłem, Mapper robił iteracje po Row w ResultSet i datastax pod spodem wyciągał kolejne strony rekordów z bazy. Dodałem własną pętle która iteruje tylko po obecnie zaciągniętych rekordach i inicjuje ręcznie encje (refleksją)

1 użytkowników online, w tym zalogowanych: 0, gości: 1