Spring Data Cassandra Query DSL RxJava2

Итак, я использую Spring Data Cassandra и RxJava, я ищу способ использовать RxJava Observable с пользовательским построением запросов (абстракция find..by слишком сложна для использования в моем случае), и я планировал использовать QueryDSL (метод findAll (Predicate), но он не включает Async: /)

Пока что я лучше всего использую AsyncCassandraTemplate для создания запроса и возвращаю его как ListenableFuture, чтобы его можно было сопоставить с Observable и использовать с Observable RxJava. Есть ли другой способ?


person jaxkodex    schedule 06.02.2018    source источник


Ответы (1)


QueryDsl не поддерживает Spring Data для Apache Cassandra. Вы можете использовать _ 1_ для создания запросов и _ 2_ для реактивного использования API:

Mono<Person> person = cassandraTemplate.selectOneById(query(where("age").is(33)), Person.class);
Maybe<Person> maybe = Flowable.fromPublisher(person).firstElement();
person mp911de    schedule 07.02.2018
comment
Похоже на правильный путь; в документации упоминается docs.spring.io/spring-data/cassandra/docs/2.0.3.RELEASE/. ReactiveCassandraTemplate можно использовать с QueryBuilder драйвера. - person jaxkodex; 07.02.2018
comment
Однако мне не нравится использовать жестко заданное имя поля в предложении where. - person jaxkodex; 07.02.2018