From 7a92ed84286e53b3dc75c2e74947e5089269b469 Mon Sep 17 00:00:00 2001 From: ost-av <53297251+ost-av@users.noreply.github.com> Date: Mon, 22 Jan 2024 06:23:54 +0000 Subject: [PATCH] SelectExecution#executeWithoutPreSelect does not pass the reactive context to the fromDb variable, which is why transactions do not work. Fixes #28 --- .../reactive/data/relational/query/SelectExecution.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/net/lecousin/reactive/data/relational/query/SelectExecution.java b/core/src/main/java/net/lecousin/reactive/data/relational/query/SelectExecution.java index e3ae762..9fc3ffa 100644 --- a/core/src/main/java/net/lecousin/reactive/data/relational/query/SelectExecution.java +++ b/core/src/main/java/net/lecousin/reactive/data/relational/query/SelectExecution.java @@ -264,7 +264,9 @@ private Flux executeWithPreSelect() { Flux> fromDb = buildFinalSql(mapping, Criteria.property(query.from.alias, idPropertyName).in(ids), false, true).execute().fetch().all(); return Flux.create((Consumer>)sink -> { RowHandlerSorted handler = new RowHandlerSorted(mapping, sink, ids); - fromDb.doOnComplete(handler::handleEnd).subscribe(handler::handleRow, sink::error); + fromDb.contextWrite(sink.contextView()) + .doOnComplete(handler::handleEnd) + .subscribe(handler::handleRow, sink::error); }); }); } @@ -274,7 +276,9 @@ private Flux executeWithoutPreSelect() { Flux> fromDb = buildFinalSql(mapping, query.where, true, hasJoinMany()).execute().fetch().all(); return Flux.create((Consumer>)sink -> { RowHandler handler = new RowHandler(mapping, sink); - fromDb.doOnComplete(handler::handleEnd).subscribe(handler::handleRow, sink::error); + fromDb.contextWrite(sink.contextView()) + .doOnComplete(handler::handleEnd) + .subscribe(handler::handleRow, sink::error); }); }