我想我已经找到了这种情况。
DataNucleus在事务中运行所有查询,除了具有TransactionIsolation.NONE的查询,即使未创建事务也是如此。非事务查询的任何连接都将切换为autocommit true,并且主要针对所有其他级别,它将切换为false。任何类型的autocmmit true查询都会导致发送启动事务的BEGIN查询。
所以看起来不可能在没有创建任何情况下创建的事务的情况下从PostgreSQL进行读取,因为PostgreSQL不支持TransactionIsolation.NONE。如果看一下代码,你可以搞清楚 ConnectionFactoryImpl
如果来自DataNucleus开发人员的人明白这一点,那就太好了。