@Override public <T> List<T> select(Statement statement, Class<T> entityClass) { Assert.notNull(statement, "Statement must not be null"); Assert.notNull(entityClass, "Entity type must not be null"); Function<Row, T> mapper = getMapper(entityClass, entityClass, QueryUtils.getTableName(statement)); return getCqlOperations().query(statement, (row, rowNum) -> mapper.apply(row)); }
@Override public <T> Stream<T> stream(Statement statement, Class<T> entityClass) throws DataAccessException { Assert.notNull(statement, "Statement must not be null"); Assert.notNull(entityClass, "Entity type must not be null"); ResultSet resultSet = getCqlOperations().queryForResultSet(statement); return StreamSupport.stream(resultSet.spliterator(), false) .map(getMapper(entityClass, entityClass, QueryUtils.getTableName(statement))); }
@Override public <T> Slice<T> slice(Statement statement, Class<T> entityClass) { Assert.notNull(statement, "Statement must not be null"); Assert.notNull(entityClass, "Entity type must not be null"); ResultSet resultSet = getCqlOperations().queryForResultSet(statement); Function<Row, T> mapper = getMapper(entityClass, entityClass, QueryUtils.getTableName(statement)); return QueryUtils.readSlice(resultSet, (row, rowNum) -> mapper.apply(row), 0, getEffectiveFetchSize(statement)); }
<T> Stream<T> doStream(Query query, Class<?> entityClass, CqlIdentifier tableName, Class<T> returnType) { RegularStatement statement = getStatementFactory().select(query, getRequiredPersistentEntity(entityClass), tableName); ResultSet resultSet = getCqlOperations().queryForResultSet(statement); return StreamSupport.stream(resultSet.spliterator(), false).map(getMapper(entityClass, returnType, tableName)); }
<T> List<T> doSelect(Query query, Class<?> entityClass, CqlIdentifier tableName, Class<T> returnType) { Function<Row, T> mapper = getMapper(entityClass, returnType, tableName); RegularStatement select = getStatementFactory().select(query, getRequiredPersistentEntity(entityClass), tableName); return getCqlOperations().query(select, (row, rowNum) -> mapper.apply(row)); }
@Override public <T> T selectOneById(Object id, Class<T> entityClass) { Assert.notNull(id, "Id must not be null"); Assert.notNull(entityClass, "Entity type must not be null"); CqlIdentifier tableName = getTableName(entityClass); Select select = QueryBuilder.select().all().from(tableName.toCql()); getConverter().write(id, select.where(), getRequiredPersistentEntity(entityClass)); Function<Row, T> mapper = getMapper(entityClass, entityClass, tableName); List<T> result = getCqlOperations().query(select, (row, rowNum) -> mapper.apply(row)); return result.isEmpty() ? null : result.get(0); }