@Override public ListenableFuture<Void> query(String cql, RowCallbackHandler rowCallbackHandler) throws DataAccessException { ListenableFuture<?> results = query(cql, newResultSetExtractor(rowCallbackHandler)); return new ExceptionTranslatingListenableFutureAdapter<>(new MappingListenableFutureAdapter<>(results, o -> null), getExceptionTranslator()); }
/** * Create a new CQL-based {@link AsyncPreparedStatementCreator} using the CQL passed in. By default, we'll create an * {@link SimpleAsyncPreparedStatementCreator}. This method allows for the creation to be overridden by subclasses. * * @param cql static CQL to execute, must not be empty or {@literal null}. * @return the new {@link AsyncPreparedStatementCreator} to use */ protected AsyncPreparedStatementCreator newAsyncPreparedStatementCreator(String cql) { return new SimpleAsyncPreparedStatementCreator(cql, ex -> translateExceptionIfPossible("PrepareStatement", cql, ex)); }
@Override public <T> Flux<T> query(String cql, RowMapper<T> rowMapper) throws DataAccessException { return query(cql, new ReactiveRowMapperResultSetExtractor<>(rowMapper)); }
@Override protected Mono<Health> doHealthCheck(Health.Builder builder) { Select select = QueryBuilder.select("release_version").from("system", "local"); return this.reactiveCassandraOperations.getReactiveCqlOperations() .queryForObject(select, String.class) .map((version) -> builder.up().withDetail("version", version).build()) .single(); }
@Override protected void doHealthCheck(Health.Builder builder) throws Exception { Select select = QueryBuilder.select("release_version").from("system", "local"); ResultSet results = this.cassandraOperations.getCqlOperations() .queryForResultSet(select); if (results.isExhausted()) { builder.up(); return; } String version = results.one().getString(0); builder.up().withDetail("version", version); }
/** * Alias for {@link #toCql()}. */ @Override public String toString() { return toCql(); } }
@Override public UpdateOptionsBuilder ttl(Duration ttl) { super.ttl(ttl); return this; }
/** * Create a new arg-based PreparedStatementSetter using the args passed in. By default, we'll create an * {@link ArgumentPreparedStatementBinder}. This method allows for the creation to be overridden by subclasses. * * @param args object array with arguments * @return the new {@link PreparedStatementBinder} to use */ protected PreparedStatementBinder newPreparedStatementBinder(Object[] args) { return new ArgumentPreparedStatementBinder(args); }
/** * Create a new RowMapper for reading columns as key-value pairs. * * @return the RowMapper to use * @see ColumnMapRowMapper */ protected RowMapper<Map<String, Object>> newColumnMapRowMapper() { return new ColumnMapRowMapper(); }
/** * Create a new RowMapper for reading result objects from a single column. * * @param requiredType the type that each result object is expected to match * @return the RowMapper to use * @see SingleColumnRowMapper */ protected <T> RowMapper<T> newSingleColumnRowMapper(Class<T> requiredType) { return SingleColumnRowMapper.newInstance(requiredType); }
@Override public <T> ListenableFuture<T> queryForObject(Statement statement, RowMapper<T> rowMapper) throws DataAccessException { ListenableFuture<List<T>> results = query(statement, newResultSetExtractor(rowMapper)); return new ExceptionTranslatingListenableFutureAdapter<>( new MappingListenableFutureAdapter<>(results, DataAccessUtils::requiredSingleResult), getExceptionTranslator()); }
@Override public <T> Flux<T> query(ReactivePreparedStatementCreator psc, RowMapper<T> rowMapper) throws DataAccessException { return query(psc, null, new ReactiveRowMapperResultSetExtractor<>(rowMapper)); }
@Override public ListenableFuture<Void> query(String cql, RowCallbackHandler rowCallbackHandler, Object... args) throws DataAccessException { ListenableFuture<?> results = query(newAsyncPreparedStatementCreator(cql), newPreparedStatementBinder(args), newResultSetExtractor(rowCallbackHandler)); return new ExceptionTranslatingListenableFutureAdapter<>(new MappingListenableFutureAdapter<>(results, o -> null), getExceptionTranslator()); }
@Override public <T> Flux<T> query(Statement statement, RowMapper<T> rowMapper) throws DataAccessException { return query(statement, new ReactiveRowMapperResultSetExtractor<>(rowMapper)); }
@Override public ListenableFuture<Void> query(Statement statement, RowCallbackHandler rowCallbackHandler) throws DataAccessException { ListenableFuture<?> result = query(statement, newResultSetExtractor(rowCallbackHandler)); return new ExceptionTranslatingListenableFutureAdapter<>(new MappingListenableFutureAdapter<>(result, o -> null), getExceptionTranslator()); }
@Override public <T> ListenableFuture<T> queryForObject(String cql, RowMapper<T> rowMapper) throws DataAccessException { ListenableFuture<List<T>> results = query(cql, newResultSetExtractor(rowMapper)); return new ExceptionTranslatingListenableFutureAdapter<>( new MappingListenableFutureAdapter<>(results, DataAccessUtils::requiredSingleResult), getExceptionTranslator()); }
@Override public ListenableFuture<Void> query(AsyncPreparedStatementCreator preparedStatementCreator, RowCallbackHandler rowCallbackHandler) throws DataAccessException { ListenableFuture<?> results = query(preparedStatementCreator, null, newResultSetExtractor(rowCallbackHandler)); return new ExceptionTranslatingListenableFutureAdapter<>(new MappingListenableFutureAdapter<>(results, o -> null), getExceptionTranslator()); }
@Override public <T> ListenableFuture<T> queryForObject(String cql, RowMapper<T> rowMapper, Object... args) throws DataAccessException { ListenableFuture<List<T>> results = query(newAsyncPreparedStatementCreator(cql), newPreparedStatementBinder(args), newResultSetExtractor(rowMapper, 1)); return new ExceptionTranslatingListenableFutureAdapter<>( new MappingListenableFutureAdapter<>(results, DataAccessUtils::requiredSingleResult), getExceptionTranslator()); }
@Override public ListenableFuture<Void> query(String cql, @Nullable PreparedStatementBinder psb, RowCallbackHandler rowCallbackHandler) throws DataAccessException { ListenableFuture<?> results = query(newAsyncPreparedStatementCreator(cql), psb, newResultSetExtractor(rowCallbackHandler)); return new ExceptionTranslatingListenableFutureAdapter<>(new MappingListenableFutureAdapter<>(results, o -> null), getExceptionTranslator()); }
@Override public ListenableFuture<Void> query(AsyncPreparedStatementCreator preparedStatementCreator, @Nullable PreparedStatementBinder psb, RowCallbackHandler rowCallbackHandler) throws DataAccessException { ListenableFuture<?> results = query(preparedStatementCreator, psb, newResultSetExtractor(rowCallbackHandler)); return new ExceptionTranslatingListenableFutureAdapter<>(new MappingListenableFutureAdapter<>(results, o -> null), getExceptionTranslator()); }