Spring JPA,CrudRepository 的 save 方法是否立即提交到 DB?

6 java hibernate jpa spring-data-jpa spring-boot

默认情况下,Spring Data JPA 已禁用自动提交。
因此,如果我使用/扩展CrudRepository使用save方法来保存对象,那么幕后发生了什么?将对象保存到数据库后,spring jpa 是否也提交了操作。
如果没有,我如何明确提交操作?

编辑以下“Michal Drozd”评论:( 以下是针对 JpaRepository 而不是 CrudRepository)
这篇文章:Spring Data JPA 中 save() 和 saveAndFlush() 的区别似乎表明对于 Spring Data JPA,默认情况下自动提交为 false。

当我们使用 save() 方法时,与保存操作相关的数据不会被刷新到数据库中,除非并且直到显式调用了 flush() 或 commit() 方法。

Mic*_*ozd 2

如果Spring JPA自动提交被打开(spring.datasource.hikari.auto-commit=true),那么在数据库设置期间(在spring初始化期间)数据库中的autocommit变量被设置为true(对于MySQL来说是这样SET autocommit=1),它不会为每个SQL语句调用commit。如果你想使用提交,那么你需要事务。因此,要么启用自动提交,要么在事务中工作。