@Override public <T> ListenableFuture<T> selectOne(Statement statement, Class<T> entityClass) { return new MappingListenableFutureAdapter<>(select(statement, entityClass), list -> list.stream().findFirst().orElse(null)); }
@Override public <T> ListenableFuture<Void> select(String cql, Consumer<T> entityConsumer, Class<T> entityClass) throws DataAccessException { Assert.hasText(cql, "Statement must not be empty"); Assert.notNull(entityConsumer, "Entity Consumer must not be null"); Assert.notNull(entityClass, "Entity type must not be null"); return select(new SimpleStatement(cql), entityConsumer, entityClass); }
@Override public <T> ListenableFuture<List<T>> select(String cql, Class<T> entityClass) { Assert.hasText(cql, "Statement must not be empty"); return select(new SimpleStatement(cql), entityClass); }
@Override public <T> ListenableFuture<Void> select(Query query, Consumer<T> entityConsumer, Class<T> entityClass) throws DataAccessException { Assert.notNull(query, "Query must not be null"); Assert.notNull(entityConsumer, "Entity Consumer must not be empty"); Assert.notNull(entityClass, "Entity type must not be null"); return select(getStatementFactory().select(query, getRequiredPersistentEntity(entityClass)), entityConsumer, entityClass); }
@Override public <T> ListenableFuture<List<T>> select(Query query, Class<T> entityClass) throws DataAccessException { Assert.notNull(query, "Query must not be null"); Assert.notNull(entityClass, "Entity type must not be null"); return select(getStatementFactory().select(query, getRequiredPersistentEntity(entityClass)), entityClass); }