相关疑难解决方法(0)

Spring Boot 2 禁用具有多个数据源的 Autocommit Hikari

我试图关闭具有多个数据源的 Hikari 的自动提交,但我没有任何运气。我正在使用 Spring Boot 2 (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
Run Code Online (Sandbox Code Playgroud)

这是我设置数据源的配置类

@Primary
@Bean
@ConfigurationProperties("spring.datasource.primary")
public DataSourceProperties primaryDataSourceProperties() {
    return new DataSourceProperties();
}

@Bean
@Primary
@ConfigurationProperties("spring.datasource.primary")
public DataSource primaryDataSource() {
    return primaryDataSourceProperties().initializeDataSourceBuilder().build();
}

@Bean
@ConfigurationProperties("spring.datasource.ucm")
public DataSourceProperties ucmDataSourceProperties() {
    return new DataSourceProperties();
}

@Bean(name="ucmDataSource")
@ConfigurationProperties("spring.datasource.ucm")
public DataSource ucmDataSource() {
    return ucmDataSourceProperties().initializeDataSourceBuilder().build();
}
Run Code Online (Sandbox Code Playgroud)

这是创建池时输出的内容:

-2018-08-23 …
Run Code Online (Sandbox Code Playgroud)

java spring-boot hikaricp

5
推荐指数
1
解决办法
1万
查看次数

在 Spring boot 中禁用自动提交不起作用

我设置了两个参数以通过 False 禁用自动提交,但在没有提交事务的情况下保存对实体的操作。

spring.datasource.hikari.auto-commit=false
spring.jpa.properties.hibernate.connection.provider_disables_autocommit=true
Run Code Online (Sandbox Code Playgroud)

我测试行为的代码片段是:

Log logEntity= new Log();
log.setId("123456789");
logRepository.save(logEntity);
Run Code Online (Sandbox Code Playgroud)

执行此代码后logEntity保存在表中。

如何在 Spring boot 中禁用自动提交标志?

java hibernate spring-boot hikaricp

2
推荐指数
1
解决办法
7588
查看次数

标签 统计

hikaricp ×2

java ×2

spring-boot ×2

hibernate ×1