免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Hibernate中update()和merge()的區(qū)別
初學hibernate時,對于session中的update()和merge()兩個方法,很容易搞混,覺得兩種都能用,有時候,又覺得不知道該用哪一種。
實際上,這兩個方法,是有很大區(qū)別的
首先,對于一個處于detatch狀態(tài)的實體對象來說,要將其中的修改,合并到數(shù)據(jù)庫中,有兩種方法,一種方式,是調(diào)用update(),另一種方式是調(diào)用merge()
當調(diào)用update()時,首先要取保目標session中,不包含同樣id的實體對象的引用,如果有的話,會拋出異常,完成update()方法后,這個實體對象從detatch狀態(tài),轉(zhuǎn)換為persistent狀態(tài),在session提交前,后續(xù)對其的修改,都會被合并到數(shù)據(jù)庫中。
當調(diào)用merge()對象時,無需考慮session中是否已經(jīng)包含同樣id的實體對象,如果session中沒有同樣id的實體對象,hibernate會通過select語句,從數(shù)據(jù)庫中查詢出對應(yīng)對象,如果數(shù)據(jù)庫中沒有對應(yīng)對象,就新建一個。同時,完成merge()操作后,會返回數(shù)據(jù)庫中對應(yīng)的persistent狀態(tài)對象,而原有的,作為參數(shù)傳入的實體對象,仍然是detatch狀態(tài),后續(xù)代碼對其的修改,無法合并到數(shù)據(jù)庫中。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Hibernate三種狀態(tài)的區(qū)分,以及save,update,saveOrUpd
Hibernate與數(shù)據(jù)庫觸發(fā)器協(xié)同工作
Hibernate三態(tài)的代碼范例
Hibernate的各種保存方式的區(qū)別(3)
Hibernate的merge()方法
Hibernate中的merge使用詳情解說
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服