spring 无法使用提供程序禁用自动提交

zzlelutf  于 2022-10-30  发布在  Spring
关注(0)|答案(1)|浏览(174)

我正在使用TransactionInterceptor打开事务,并使用Hibernate事务管理器和com.zaxxer.hikari.hikariDataSource作为数据源。
我已经为数据源和hib属性hibernate.connection.provider_disabled_autocommit设置了自动提交值,如下所示

<property name="autoCommit" value="false"/>

<prop key="hibernate.connection.provider_disables_autocommit">true</prop>

即使这样,交易也是在需要之前很久就被打开的。
5.3.1. hibernate-core的最终版本用于上述操作。
我使用了以下参考资料。
https://github.com/spring-projects/spring-boot/issues/9261
https://vladmihalcea.com/why-you-should-always-use-hibernate-connection-provider_disables_autocommit-for-resource-local-jpa-transactions/
请让我知道,如果有任何其他事情需要做或什么是延迟的确切含义。
先谢谢你。

soat7uwm

soat7uwm1#

除了像你那样在休眠中将autocommit设置为false之外,你还需要在连接池级别将autocommit设置为false。否则,它不会像你的例子中那样有效。比如,对于Hikari池,你需要如下配置:

HikariConfig hikariConfig = super.hikariConfig( dataSource );

hikariConfig.setAutoCommit( false );

相关问题