JOOQ vertx AsyncClassicGenericQueryExecutor управление транзакциями - PullRequest
0 голосов
/ 05 декабря 2018

Я прохожу JOOQ с vertx и пытаюсь использовать AsyncClassicGenericQueryExecutor для выполнения запроса.Это выглядит как

AsyncClassicGenericQueryExecutor queryExecutor = new AsyncClassicGenericQueryExecutor(client);
Future<Integer> updatedCustom = queryExecutor.execute(DSL.using(configuration)
            .update(Tables.SOMETHING)
            .set(Tables.SOMETHING.SOMEREGULARNUMBER,456)
            .where(Tables.SOMETHING.SOMEID.eq(something.getSomeid())));

ссылка: https://github.com/jklingsporn/vertx-jooq/tree/master/vertx-jooq-classic-async

Если вы видите реализацию метода execute в классе AsyncClassicGenericQueryExecutor, он создает соединение с базой данных внутри него.

public Future<Integer> execute(Function<DSLContext, ? extends Query> queryFunction) {
        return getConnection().compose(safeExecute(sqlConnection -> {
                Query query = createQuery(queryFunction);
                log(query);
                Future<Integer> future = Future.future();
                sqlConnection.updateWithParams(
                        query.getSQL(),
                        getBindValues(query),
                        this.<UpdateResult,Integer>executeAndClose(UpdateResult::getUpdated,
                                sqlConnection,
                                future)
                );
                return future;
        }));
    }

ссылка: https://github.com/jklingsporn/vertx-jooq/blob/master/vertx-jooq-classic-async/src/main/java/io/github/jklingsporn/vertx/jooq/classic/async/AsyncClassicGenericQueryExecutor.java

Я искал управление транзакциями здесь.Предоставляет ли AsyncClassicGenericQueryExecutor управление транзакциями?или мы должны написать собственный код для него?Также, если соединение с базой данных создается внутри метода execute (который является реализацией jooq), как мы можем написать некоторый пользовательский код транзакции выше, так как транзакция должна происходить на одном соединении.Может кто-нибудь, пожалуйста, руководство.

1 Ответ

0 голосов
/ 05 декабря 2018

Пока нет, но есть предложения о том, как добавить транзакции Vertx в Kotlin: https://github.com/jklingsporn/vertx-jooq/issues/66

...