Java Spring Boot 2使用多个数据源禁用自动提交Hikari

Java Spring Boot 2使用多个数据源禁用自动提交Hikari,java,spring-boot,hikaricp,Java,Spring Boot,Hikaricp,我正试图关闭具有多个数据源的Hikari上的自动提交,但我没有任何运气。我使用的是SpringBoot2(2.0.3.RELEASE)。这是我的配置: 应用程序属性 spring.datasource.primary.driver=com.mysql.cj.jdbc.Driver spring.datasource.primary.url=jdbc:mysql://localhost:3306/spark?autoReconnect=true spring.datasource.primary.

我正试图关闭具有多个数据源的Hikari上的自动提交,但我没有任何运气。我使用的是SpringBoot2(2.0.3.RELEASE)。这是我的配置:

应用程序属性

spring.datasource.primary.driver=com.mysql.cj.jdbc.Driver
spring.datasource.primary.url=jdbc:mysql://localhost:3306/spark?autoReconnect=true
spring.datasource.primary.username=xxxx
spring.datasource.primary.password=xxxx
spring.datasource.primary.max-active=100
spring.datasource.primary.max-idle=5
spring.datasource.primary.min-idle=1
spring.datasource.primary.test-while-idle=true
spring.datasource.primary.test-on-borrow=true
spring.datasource.primary.validation-query=SELECT 1
spring.datasource.primary.time-between-eviction-runs-millis=5000
spring.datasource.primary.min-evictable-idle-time-millis=60000


spring.datasource.ucm.driver=com.mysql.cj.jdbc.Driver
spring.datasource.ucm.url=jdbc:mysql://localhost:3306/usercentral?autoReconnect=true
spring.datasource.ucm.username=xxx
spring.datasource.ucm.password=xxx
spring.datasource.ucm.max-active=100
spring.datasource.ucm.test-while-idle=true
spring.datasource.ucm.test-on-borrow=true
spring.datasource.ucm.validation-query=SELECT 1
spring.datasource.ucm.time-between-eviction-runs-millis=5000
spring.datasource.ucm.min-evictable-idle-time-millis=60000
spring.datasource.ucm.hikari.auto-commit=false  # <- Not working
以下是创建池时输出的内容:

-2018-08-23 15:48:22.845 -DEBUG 21455 --- [nio-8081-exec-1] com.zaxxer.hikari.HikariConfig           : 1151 : allowPoolSuspension.............false
-2018-08-23 15:48:22.846 -DEBUG 21455 --- [nio-8081-exec-1] com.zaxxer.hikari.HikariConfig           : 1151 : autoCommit......................true
-2018-08-23 15:48:22.846 -DEBUG 21455 --- [nio-8081-exec-1] com.zaxxer.hikari.HikariConfig           : 1151 : catalog.........................none
-2018-08-23 15:48:22.846 -DEBUG 21455 --- [nio-8081-exec-1] com.zaxxer.hikari.HikariConfig           : 1151 : connectionInitSql...............none

如何关闭此连接池上的自动提交

我使用的是Spring Boot 2.0.4.RELEASE,遇到了同样的问题。在显示非工作属性的相关帖子上花费的时间

删除
.hikari
对我很有效

spring.datasource.ucm.autocommit=false

问题的替代解决方案是,将默认自动提交属性配置为false。它也应该起作用

spring.datasource.ucm.default-auto-commit=false


设为false默认值自动提交应该可以工作

spring.datasource.ucm.default-auto-commit=false

我知道这已经很晚了,但是这个问题让我的大脑爆炸了约2天,这篇文章位于谷歌搜索的顶端,所以我将在这里为其他人发布解决方案

其实很简单,只是我在这里的文档中遗漏了它

长话短说,在构建类之前,请确保添加
.type(HikariDataSource.class)


另外,如果您使用jhipster,您还应该像下面这样将配置指向hikari部分
@ConfigurationProperties(“spring.datasource.other.hikari”)

hikari是spring Boot 2中的默认设置,所以可能只需省略“.hikari.”?此外,“password”之后的选项都不起作用-Hikari使用了不同的选项,如和中所示。这看起来很有效,很有趣,因为如果我在configurationProperties中使用ignoreUnknownFields=false,由于“app.datasource.ucm.auto commit”未解析,应用程序无法启动,但是如果我将ignoreUnknownFields设置为true,它似乎在自动提交关闭的情况下工作!谢谢
spring.datasource.ucm.default-auto-commit=false