在 Spring 启动时禁用自动提交无效
Disabling auto commit in Spring boot not worked
我设置了两个参数以通过 False 禁用自动提交,但在没有事务的实体上保存操作被提交。
spring.datasource.hikari.auto-commit=false
spring.jpa.properties.hibernate.connection.provider_disables_autocommit=true
我测试该行为的代码片段是:
Log logEntity= new Log();
log.setId("123456789");
logRepository.save(logEntity);
执行此代码后 logEntity
保存在 table。
如何在 Spring 启动时禁用自动提交标志?
我找到了解决方案,我不得不在 EnableJpaRepositories
上禁用它,如下所示:
@EnableJpaRepositories(basePackages = {"org.company.product"},
enableDefaultTransactions = false)
这并没有让我离开。显然 SimpleJpaRepository
的所有方法都用 @Transactional
注释,这是 CrudRepositories
和 JpaRepository
的实现,因此在每次调用后提交。
参见:
或直接:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#transactions
我设置了两个参数以通过 False 禁用自动提交,但在没有事务的实体上保存操作被提交。
spring.datasource.hikari.auto-commit=false
spring.jpa.properties.hibernate.connection.provider_disables_autocommit=true
我测试该行为的代码片段是:
Log logEntity= new Log();
log.setId("123456789");
logRepository.save(logEntity);
执行此代码后 logEntity
保存在 table。
如何在 Spring 启动时禁用自动提交标志?
我找到了解决方案,我不得不在 EnableJpaRepositories
上禁用它,如下所示:
@EnableJpaRepositories(basePackages = {"org.company.product"},
enableDefaultTransactions = false)
这并没有让我离开。显然 SimpleJpaRepository
的所有方法都用 @Transactional
注释,这是 CrudRepositories
和 JpaRepository
的实现,因此在每次调用后提交。
参见:
或直接:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#transactions