Java springjpa:Save()方法是否应该将数据提交到数据库?

Java springjpa:Save()方法是否应该将数据提交到数据库?,java,spring,repository,spring-data,spring-data-jpa,Java,Spring,Repository,Spring Data,Spring Data Jpa,我使用的是Spring数据对于我的项目,我使用的是一个标准的存储库,它扩展了CRUD存储库 我的代码按预期工作,但是当我调用repository.save()时,数据库是否被更改 我是否还需要在此之后调用commit,以更改数据库?或者repository.save()方法是否应该自动更改数据库?当应用程序运行时,与线程关联的实体管理器将控制修改或添加的对象,save()方法只需执行此操作,它是一个标记,上面写着:“这应该保存在数据库中” 数据库DML(insert、update、delete)

我使用的是
Spring数据
对于我的项目,我使用的是一个标准的
存储库
,它扩展了CRUD存储库

我的代码按预期工作,但是当我调用
repository.save()
时,数据库是否被更改


我是否还需要在此之后调用
commit
,以更改数据库?或者
repository.save()
方法是否应该自动更改数据库?

当应用程序运行时,与线程关联的实体管理器将控制修改或添加的对象,save()方法只需执行此操作,它是一个标记,上面写着:“这应该保存在数据库中”

数据库DML(insert、update、delete)在保存内容时不会发送到数据库,而是在提交之前的最后一刻完成,延迟到最后一刻

您可以随时使用Entity Manager的flush()方法将DML发送到数据库,事实上,您可以调试数据库日志并查看您的查询,但在发出提交之前,对数据库的这些更改仅在DB连接中可见;commit()是与实体管理器关联的事务的方法


在某些框架(如play 1.4.x)中,提交是在正确解析和呈现响应视图之后发出的。

通常,保存方法应该包装在事务中(spring数据对您来说是透明的)。如果您编写自己的方法,您需要使用
@Transactional
注释您的修改方法。我已经用事务注释注释了我调用save的主方法,但仍然不起作用。您可以发布存储库的代码,包括save方法+TransactionManager配置吗?我如何找到交易经理?这是我的第一个春季项目,谢谢。。我建议从入门指南开始: