![](/img/trans.png)
[英]Spring JPA, does CrudRepository's save method commit to DB immediately?
[英]Spring JPA: Should the Save() method commit data to the database?
我正在為我的項目使用Spring data
,我使用的是extends CRUD Repository
的標准Repository
extends CRUD Repository
。
我的代碼按預期工作,但是當我調用repository.save()
,數據庫沒有改變?
我是否還需要在此之后調用commit
以更改數據庫? 或者repository.save()
方法是否應該自動更改數據庫?
當您的應用程序運行時,與線程關聯的實體管理器保持對修改或添加對象的控制,save() 方法只是這樣做,它是一個標記,表示:“這應該保存在數據庫中”。
數據庫 DML(插入、更新、刪除)不會在您保存內容時發送到數據庫,它會在最后提交之前完成,它會延遲到最后一刻。
可以隨時使用實體管理器的 flush() 方法將 DML 發送到數據庫,實際上您可以調試數據庫日志並查看查詢的過程,但是對數據庫的這種更改僅在您的數據庫連接中可見直到提交提交; commit() 是與實體管理器關聯的事務的方法。
在像 play 1.4.x 這樣的一些框架中,提交是在響應視圖被正確解析和呈現后發出的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.