У меня есть следующий метод, в котором я выполняю вставку БД. Я хочу выполнить вставку в транзакции. Это означает, что когда в записях 100 значений, я хочу вставить их все и зафиксировать один раз.
Как я могу изменить следующее, чтобы я мог получать информацию record.value () для каждого запроса вставки ниже. Это, по сути, равносильно тому, что andThen () 100 раз, но, конечно, я не хочу писать andThen () 100 раз и не знаю количество записей, которые могут варьироваться. На заметку: Использование RX Java 1. Пожалуйста, посоветуйте. Спасибо.
public Observable<?> insert(Observable<Record<String, String>> records) {
// I am looking for a way to get this record.value() into the following return block.
records.flatMap(record -> {
String value = record.value();
return null;
});
return client.rxGetConnection()
// making it transactional by setting to false
.flatMap(connection -> connection.rxSetAutoCommit(false)
// was looking to insert above records and flatMap operations here but it is not possible from what I have explored.
.toCompletable()
// .andThen(connection.rxExecute("INSERT (name) VALUES " + record.value()) // trying to achieve this, to be able to get record.value for each insert
.andThen(connection.rxExecute("INSERT (name) VALUES some_value"))
.flatMap(rows -> connection.rxCommit())).toObservable();
}