Я посмотрел руководство по работе с реактивными 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);
}