@Override public <T> Flux<T> query(ReactivePreparedStatementCreator psc, ReactiveResultSetExtractor<T> rse) throws DataAccessException { return query(psc, null, rse); }
@Override public <T> Flux<T> queryForFlux(String cql, Class<T> elementType, Object... args) throws DataAccessException { return query(cql, getSingleColumnRowMapper(elementType), args); }
@Override public <T> Flux<T> query(String cql, @Nullable PreparedStatementBinder psb, RowMapper<T> rowMapper) throws DataAccessException { return query(cql, psb, new ReactiveRowMapperResultSetExtractor<>(rowMapper)); }
@Override public <T> Flux<T> query(String cql, @Nullable PreparedStatementBinder psb, ReactiveResultSetExtractor<T> rse) throws DataAccessException { return query(newReactivePreparedStatementCreator(cql), psb, rse); }
@Override public <T> Flux<T> query(ReactivePreparedStatementCreator psc, @Nullable PreparedStatementBinder psb, RowMapper<T> rowMapper) throws DataAccessException { return query(psc, psb, new ReactiveRowMapperResultSetExtractor<>(rowMapper)); }
@Override public <T> Flux<T> queryForFlux(String cql, Class<T> elementType) throws DataAccessException { return query(cql, getSingleColumnRowMapper(elementType)); }
@Override public <T> Flux<T> queryForFlux(Statement statement, Class<T> elementType) throws DataAccessException { return query(statement, getSingleColumnRowMapper(elementType)); }
@Override public <T> Flux<T> query(ReactivePreparedStatementCreator psc, RowMapper<T> rowMapper) throws DataAccessException { return query(psc, null, new ReactiveRowMapperResultSetExtractor<>(rowMapper)); }
@Override public Flux<Map<String, Object>> queryForFlux(Statement statement) throws DataAccessException { return query(statement, getColumnMapRowMapper()); }
@Override public <T> Flux<T> query(Statement statement, RowMapper<T> rowMapper) throws DataAccessException { return query(statement, new ReactiveRowMapperResultSetExtractor<>(rowMapper)); }
@Override public <T> Flux<T> query(String cql, RowMapper<T> rowMapper) throws DataAccessException { return query(cql, new ReactiveRowMapperResultSetExtractor<>(rowMapper)); }
@Override public Flux<Map<String, Object>> queryForFlux(String cql) throws DataAccessException { return query(cql, getColumnMapRowMapper()); }
@Override public Flux<Map<String, Object>> queryForFlux(String cql, Object... args) throws DataAccessException { return query(cql, getColumnMapRowMapper(), args); }
@Override public Mono<Boolean> execute(ReactivePreparedStatementCreator psc) throws DataAccessException { return query(psc, resultSet -> Mono.just(resultSet.wasApplied())).last(); }
@Override public Mono<Boolean> execute(String cql, @Nullable PreparedStatementBinder psb) throws DataAccessException { return query(newReactivePreparedStatementCreator(cql), psb, resultSet -> Mono.just(resultSet.wasApplied())) .next(); }
@Override public <T> Flux<T> query(String cql, ReactiveResultSetExtractor<T> rse, Object... args) throws DataAccessException { return query(newReactivePreparedStatementCreator(cql), newArgPreparedStatementBinder(args), rse); }
@Override public Mono<ReactiveResultSet> queryForResultSet(String cql, Object... args) throws DataAccessException { Assert.hasText(cql, "CQL must not be empty"); return query(newReactivePreparedStatementCreator(cql), newArgPreparedStatementBinder(args), Mono::just) .next(); }
@Override public <T> Mono<T> queryForObject(Statement statement, RowMapper<T> rowMapper) throws DataAccessException { return query(statement, rowMapper).buffer(2).flatMap(list -> Mono.just(DataAccessUtils.requiredSingleResult(list))) .next(); }
@Override public <T> Mono<T> queryForObject(String cql, RowMapper<T> rowMapper, Object... args) throws DataAccessException { return query(cql, rowMapper, args).buffer(2).flatMap(list -> Mono.just(DataAccessUtils.requiredSingleResult(list))) .next(); }
@Override public <T> Mono<T> queryForObject(String cql, RowMapper<T> rowMapper) throws DataAccessException { return query(cql, rowMapper).buffer(2).flatMap(list -> Mono.just(DataAccessUtils.requiredSingleResult(list))) .next(); }