我看到当前可以在auto-commit
对象上禁用Connection
。但是,当您使用Spring Data时,您无权访问Connection
对象。
此外,Postgres没有此功能作为连接URL的一部分。
有人知道如何永久关闭它吗?
答案 0 :(得分: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
传播和重置自动提交和隔离级别控制。