diff --git a/src/driver/src/main/java/com/edgedb/driver/EdgeDBClient.java b/src/driver/src/main/java/com/edgedb/driver/EdgeDBClient.java index 701a93c5..523778db 100644 --- a/src/driver/src/main/java/com/edgedb/driver/EdgeDBClient.java +++ b/src/driver/src/main/java/com/edgedb/driver/EdgeDBClient.java @@ -28,6 +28,8 @@ import java.util.function.Consumer; import java.util.function.Function; +import static com.edgedb.driver.util.ComposableUtil.composeWith; + /** * Represents a client pool used to interact with EdgeDB. */ @@ -158,7 +160,7 @@ public CompletionStage transaction( TransactionSettings settings, @NotNull Function> func ) { - return getTransactableClient().thenCompose(client -> client.transaction(settings, func)); + return composeWith(getTransactableClient(), client -> client.transaction(settings, func)); } /** @@ -169,7 +171,7 @@ public CompletionStage transaction( * @param The result of the query. */ public CompletionStage transaction(@NotNull Function> func) { - return getTransactableClient().thenCompose(client -> client.transaction(func)); + return composeWith(getTransactableClient(), client -> client.transaction(func)); } /** diff --git a/src/driver/src/main/java/com/edgedb/driver/clients/TransactableClient.java b/src/driver/src/main/java/com/edgedb/driver/clients/TransactableClient.java index 22976bef..c36d41e0 100644 --- a/src/driver/src/main/java/com/edgedb/driver/clients/TransactableClient.java +++ b/src/driver/src/main/java/com/edgedb/driver/clients/TransactableClient.java @@ -7,7 +7,7 @@ import java.util.concurrent.CompletionStage; import java.util.function.Function; -public interface TransactableClient extends EdgeDBQueryable { +public interface TransactableClient extends EdgeDBQueryable, AutoCloseable { TransactionState getTransactionState(); default CompletionStage transaction(@NotNull Function> func) {