2

我看到目前,您可以禁用对象auto-commitConnection但是当您使用 Spring Data 时,您无权访问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 中提供了自动提交隔离级别控制的传播和重置。TransactionDefinition

看到这个线程:https ://github.com/r2dbc/r2dbc-spi/pull/95

于 2019-12-02T11:53:44.123 回答