I am using JOOQ with vertx with latest version i.e 4.0.0. In this I am
using JDBCClassicGenericQueryExecutor for query execution and using
transactionAsync() method for transaction management. Following is my code
sample
Vertx vertx = Vertx.currentContext().owner();
Configuration configuration = JooqConfiguration.getConfiguration();
System.out.println("created connection");
JDBCClassicGenericQueryExecutor queryExecutor = new
JDBCClassicGenericQueryExecutor(configuration,vertx);
Future<CompletableFuture> updatedCustom = queryExecutor.executeAny(dslContext
-> {
CompletionStage<?> completionStage = dslContext.transactionAsync
(config -> {
DSLContext transactionContext = DSL.using(configuration);
transactionContext
.update(Tables.ACCOUNT_USER)
.set(Tables.ACCOUNT_USER.USERNAME ,"abc")
.where(Tables.ACCOUNT_USER.USER_ID.eq("111")).
execute();
// throwing RuntimeException() here to check transaction
transactionContext
.update(Tables.ACCOUNT_USER)
.set(Tables.ACCOUNT_USER.USERNAME ,"xyz")
.where(Tables.ACCOUNT_USER.USER_ID.eq("222")).execute();
});
return completionStage.toCompletableFuture();
});
updatedCustom.setHandler(res -> {
if (res.succeeded()) {
System.out.println("Rows updated");
} else {
System.err.println("Something failed badly");
}
});
But it is failing to rollback updation of first query after exception. Do
we need to do something different for transaction management. It was
working for Dao's executeAsync() method for io.github.jklingsporn:vertx-jooq
-classic:2.4.1.
--
You received this message because you are subscribed to the Google Groups "jOOQ
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.