PGPoolingDataSource 不接受默认的自动提交

PGPoolingDataSource does not honor default autocommit

记录了将数据源与 getConnection 函数一起使用 https://jdbc.postgresql.org/documentation/94/ds-ds.html

当数据源禁用自动提交时,我们有

ds.isDefaultAutoCommit

res0: 布尔值 = false

正在连接:

val conn = ds.getConnection

自动提交已启用:

conn.getAutoCommit

res1: 布尔值 = true

查看代码,我们看到 getConnection 使用父 class 函数而不更改提交模式 https://github.com/pgjdbc/pgjdbc/blob/master/pgjdbc/src/main/java/org/postgresql/ds/PGConnectionPoolDataSource.java

这只是实施 anomaly/limitation 还是背后有其他原因?

它看起来像一个错误。 class PGPooledConnection(池中连接的句柄)在其构造函数中采用布尔参数 autoCommit,但它不对其执行任何操作(如重置自动提交状态在分发逻辑连接之前)。

你应该在他们的 github 上创建一个问题。