Spring JPA:Save() 方法应该将数据提交到数据库吗?

我正在为我的项目使用,我正在使用一个标准.Spring dataRepositoryextends CRUD Repository

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

我是否还需要在此之后调用 a 才能更改数据库?还是应该自动更改数据库?commitrepository.save()


答案 1

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

数据库DML(插入,更新,删除)不会在您保存内容时发送到数据库,而是在提交之前完成,它被延迟到最后一刻。

可以使用实体管理器的 flush() 方法随时将 DML 发送到数据库,实际上您可以调试数据库日志并查看查询是否经过,但是对数据库的这种更改仅在数据库连接中可见,直到发出提交为止;commit() 是与实体管理器关联的事务的一种方法。

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


答案 2

推荐