我看到目前,您可以禁用对象auto-commit
。Connection
但是当您使用 Spring Data 时,您无权访问Connection
对象。
此外,Postgres 没有此功能作为连接 URL 的一部分。
有谁知道如何永久关闭它?
我看到目前,您可以禁用对象auto-commit
。Connection
但是当您使用 Spring Data 时,您无权访问Connection
对象。
此外,Postgres 没有此功能作为连接 URL 的一部分。
有谁知道如何永久关闭它?
我不知道是否有办法永久禁用它,但你可以稍微低级并使用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