Java Spring JPA,Crudepository';s save方法是否立即提交到数据库?

Java Spring JPA,Crudepository';s save方法是否立即提交到数据库?,java,spring-boot,hibernate,jpa,spring-data-jpa,Java,Spring Boot,Hibernate,Jpa,Spring Data Jpa,默认情况下,Spring数据JPA已禁用自动提交功能。 因此,如果我使用/扩展crudepository来使用save方法保存对象,那么在场景后面会发生什么??将对象保存到DB后,spring jpa是否也提交该操作。 如果没有,如何显式提交操作 编辑下面的“Michal Drozd”评论:(以下是JpaRepository而非Crudepository) 本文:似乎表明,对于SpringDataJPA,自动提交默认为false 当我们使用save()方法时,与save()关联的数据 操作将不会

默认情况下,Spring数据JPA已禁用自动提交功能。
因此,如果我使用/扩展
crudepository
来使用
save
方法保存对象,那么在场景后面会发生什么??将对象保存到DB后,spring jpa是否也提交该操作。
如果没有,如何显式提交操作

编辑下面的“Michal Drozd”评论:(以下是JpaRepository而非Crudepository)
本文:似乎表明,对于SpringDataJPA,自动提交默认为false

当我们使用save()方法时,与save()关联的数据 操作将不会刷新到数据库,除非 调用flush()或commit()方法


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

save()
crudepository的方法是
@Transactional
本身。所以,如果您不在另一个事务的上下文中调用它,它将创建一个并提交或回滚它,这取决于持久化实体的成功或失败。

@MichalDrozd您能用任何引用进一步支持您的案例吗。我将非常感激,因为我可以使用相同的参考资料向我的同龄人展示。@joveny相反。Hibernate构建在JPA之上。JPA(Java持久性API)是一种规范,而它的流行实现是Hibernate、EclipseLink等@Ayush28,我指的是Spring数据JPA,而不是评论中的JPA。(我重新发布了评论)。谢谢你的指点。所以我的意思是,Spring数据JPA是在Hibernate之上构建的,而Hibernate是JPA的一个实现。@MichalDrozd,谢谢。我在谷歌上搜索JDBC自动提交模式,发现这个
当创建连接时,它处于自动提交模式。
Ref->。与Hibernate类似,我发现:
默认情况下,autocommit值为false,因此需要显式提交事务。
Ref->。因为Spring数据JPA是在Hibernate之上构建的,所以我认为它也有autocommit false。更准确地说,Spring数据JPA是在JPA提供者之上构建的-无论是Hibernate还是其他什么。。。希望有任何参考资料能支持你的回答?我应该用不同的措辞
crudepository
只是一个接口,因此它的方法不是事务性的。但是
crudepository
的Spring Data Jpa实现是
SimpleParepository
,它在许多方法上都有@Transactional注释,包括
save()