Я просмотрел руководство по работе с реактивными клиентами SQL (https://quarkus.io/guides/reactive-sql-clients#using), но я не могу понять, как можно работать с транзакциями. Допустим, я бы хотел улучшить это демонстрационное фруктовое приложение с помощью транзакций.
Как я могу использовать следующий метод для использования транзакции, которая также отменяет все внесенные изменения, если что-то в транзакции не удалось?
public static Multi<Fruit> findAll(PgPool client) {
return client.query("SELECT id, name FROM fruits ORDER BY name ASC")
.onItem().produceMulti(set -> Multi.createFrom().items(() -> StreamSupport.stream(set.spliterator(), false)))
.onItem().apply(Fruit::from);
}