Я использую PreparedStatement и BoundStatement для выполнения некоторых запросов Cassandra. Проблема в том, что я пытаюсь использовать для них ограничение. Это то, что у меня есть:Cassandra BoundStatement с ограничением
selectByDatasetIdAndTimePreparedStatement = getSession().prepare(
QueryBuilder.select()
.all()
.from(KEYSPACE_NAME, TABLE_NAME)
.where(QueryBuilder.eq(AFFILIATION_ID_COLUMN, QueryBuilder.bindMarker()))
.and(QueryBuilder.eq(DATASET_ID_COLUMN, QueryBuilder.bindMarker()))
.and(QueryBuilder.lte(TIME_COLUMN, QueryBuilder.bindMarker()))
//.limit(QueryBuilder.bindMarker())
);
Всякий раз, когда мне нужно, чтобы выполнить запрос, я называю эту функцию:
public Statement buildSelectByDatsetIdAndTimePreparedStatment(String affiliationId, String datasetId, Long time, int limit)
{
BoundStatement boundStatement = selectByDatasetIdAndTimePreparedStatement
.bind()
.setString(AFFILIATION_ID_COLUMN, affiliationId)
.setString(DATASET_ID_COLUMN, datasetId)
.setLong(TIME_COLUMN, time);
databaseManager.applyReadStatementsConfiguration(boundStatement);
return boundStatement;
}
Однако, это работает только без оговорки предела в первом фрагменте кода. Я не знаю, как указать лимит во втором фрагменте. Я не хочу использовать строку, что-то вроде
databaseManager.getSession().execute("SELECT * FROM myTable where ... limit 10);
Есть ли способ сделать это с помощью BoundStatement? Я не вижу ничего подобного BoundStatement.limit() или setLimit().
Спасибо, Serban
Удивительный! Благодаря! –