hibernate save update merge 區別


1.save

save的對象是臨時對象,首先將對象寫入緩存,使其變為持久對象。

save函數底層使用的是Insert語句,因此如果數據庫中已經存在相同ID的記錄,那么會報錯

2.update

update的對象是一個游離對象,將其更新為持久對象。如果已經存在一個相同ID的

持久對象,那么會報錯。

update底層使用的是update語句,因此如果數據庫中沒有相同ID的記錄,那么會報錯

3.merge

當我們使用update的時候,執行完成后,我們提供的對象A的狀態變成持久化狀態。 
但當我們使用merge的時候,執行完成,我們提供的對象A還是脫管狀態,hibernate或者new了一個B,或者檢索到 一個持久對象B,並把我們提供的對象A的所有的值拷貝到這個B,執行完成后B是持久狀態,而我們提供的A還是托管狀態。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM