2

現在、オブジェクトで無効auto-commitにできることがわかりました。ただし、Spring Data を使用する場合、オブジェクトConnectionにアクセスできません。Connection

また、Postgres には接続 URL の一部としてこの機能がありません。

永久にオフにする方法を知っている人はいますか?

4

1 に答える 1

0

永久に無効にする方法があるかどうかはわかりませんが、少し低レベルになり、Connectionオブジェクトを使用してauto-commit機能を設定できます。

@Autowired
private ConnectionFactory connectionFactory;

public Flux<Integer> insertSmth() {
        return Mono.from(connectionFactory.create())
                .flatMapMany(connection ->
                        Flux.from(connection.setAutoCommit(false))
                                .thenMany(connection.beginTransaction())
                                .thenMany(connection.createStatement("INSERT INTO ...").execute())
                                ...
}

編集: Spring Data R2DBC 1.0.0 RC1 では、 Auto-CommitおよびIsolation Levelコントロールの伝播とリセットが利用できるようです。TransactionDefinition

このスレッドを参照してください: https://github.com/r2dbc/r2dbc-spi/pull/95

于 2019-12-02T11:53:44.123 に答える