java - Spring JPA : Should the Save() method commit data to the database?

标签 java spring repository spring-data spring-data-jpa

我正在为我的项目使用 Spring data,我正在使用 extends CRUD Repository 的标准 Repository

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

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

最佳答案

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

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

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

在某些框架中,例如 play 1.4.x,提交是在响应 View 被正确解析和呈现后发出的。

关于java - Spring JPA : Should the Save() method commit data to the database?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35651757/

相关文章:

java - <p :lineChart> Tag Library supports namespace: http://primefaces. org/ui,但没有为名称定义标签:lineChart

java - 使用 try catch finally block 时组织 java 代码

Spring 安全 : Authentication method not supported: GET

maven - 停止记录 Maven 上存储库的下载

java - 如何从 url 读取图像并在 java 中将其从 CMYK 转换为 RGB?

集合框架中的 Java 集合与映射

spring - 在同一 XML 文件中的 JPA 中配置多个持久性单元

java - swing应用程序、spring应用程序上下文错误

java - Spring Cassandra 存储库 - 如何使用空集群键进行搜索

sql - 无法将 SQL 文件添加到 Git 存储库?