日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Hibernate save基礎(chǔ)簡介

Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate save,包括介紹Hibernate saveOrUpdate等方面。

平泉網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

在所有之前,說明一下,對(duì)于Hibernate,它的對(duì)象有三種狀態(tài),transient、persistent、detached

下邊是常見的翻譯辦法:
◆transient:瞬態(tài)或者自由態(tài)(new DeptPo(1,”行政部”,20,”行政相關(guān)”),該po的實(shí)例和session沒有關(guān)聯(lián),該po的實(shí)例處于transient)
◆persistent:持久化狀態(tài)(和數(shù)據(jù)庫中記錄想影射的Po實(shí)例,它的狀態(tài)是persistent, 通過get和load等得到的對(duì)象都是persistent)
◆detached:脫管狀態(tài)或者游離態(tài)
(1)當(dāng)通過get或load方法得到的po對(duì)象它們都處于persistent,但如果執(zhí)行delete(po)時(shí)(但不能執(zhí)行事務(wù)),該 po狀態(tài)就處于detached, (表示和session脫離關(guān)聯(lián)),因delete而變成游離態(tài)可以通過save或saveOrUpdate()變成持久態(tài)
(2)當(dāng)把session關(guān)閉時(shí),session緩存中的persistent的po對(duì)象也變成detached

Hibernate save和update區(qū)別

把這一對(duì)放在***位的原因是因?yàn)檫@一對(duì)是最常用的。
◆save的作用是把一個(gè)新的對(duì)象保存
◆update是把一個(gè)脫管狀態(tài)的對(duì)象或自由態(tài)對(duì)象(一定要和一個(gè)記錄對(duì)應(yīng))更新到數(shù)據(jù)庫

Hibernate saveOrUpdate和update區(qū)別

這個(gè)是比較好理解的,顧名思義,saveOrUpdate基本上就是合成了save和update,而update只是update;引用Hibernate reference中的一段話來解釋他們的使用場合和區(qū)別

通常下面的場景會(huì)使用update()或saveOrUpdate():
◆程序在***個(gè)session中加載對(duì)象,接著把session關(guān)閉
◆該對(duì)象被傳遞到表現(xiàn)層
◆對(duì)象發(fā)生了一些改動(dòng)
◆該對(duì)象被返回到業(yè)務(wù)邏輯層最終到持久層
◆程序創(chuàng)建第二session調(diào)用第二個(gè)session的update()方法持久這些改動(dòng)

Hibernate saveOrUpdate(po)做下面的事:
◆如果該po對(duì)象已經(jīng)在本session中持久化了,在本session中執(zhí)行saveOrUpdate不做任何事
◆如果savaOrUpdate(新po)與另一個(gè)與本session關(guān)聯(lián)的po對(duì)象擁有相同的持久化標(biāo)識(shí)(identifier),拋出一個(gè)異常
org.Hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [org.itfuture.www.po.Xtyhb#5]
◆saveOrUpdate如果對(duì)象沒有持久化標(biāo)識(shí)(identifier)屬性,對(duì)其調(diào)用save() ,否則update() 這個(gè)對(duì)象

Hibernate save和persist區(qū)別

這個(gè)是最迷離的一對(duì),表面上看起來使用哪個(gè)都行,在Hibernate reference文檔中也沒有明確的區(qū)分他們。這里給出一個(gè)明確的區(qū)分。(可以跟進(jìn)src看一下,雖然實(shí)現(xiàn)步驟類似,但是還是有細(xì)微的差別)

主要內(nèi)容區(qū)別:
1,persist把一個(gè)瞬態(tài)的實(shí)例持久化,但是并"不保證"標(biāo)識(shí)符(identifier主鍵對(duì)應(yīng)的屬性)被立刻填入到持久化實(shí)例中,標(biāo)識(shí)符的填入可能被推遲到flush的時(shí)候。
2,save, 把一個(gè)瞬態(tài)的實(shí)例持久化標(biāo)識(shí)符,及時(shí)的產(chǎn)生,它要返回標(biāo)識(shí)符,所以它會(huì)立即執(zhí)行Sql insert

【編輯推薦】

  1. iBATIS與Hibernate間的取舍
  2. JDBC與Hibernate讀取性能分析
  3. 淺析NHibernate一對(duì)一映射的延遲加載
  4. 使用Hibernate 3二級(jí)緩存的四個(gè)經(jīng)驗(yàn)
  5. MySQL存儲(chǔ)過程中的Hibernate JDBC

網(wǎng)頁標(biāo)題:Hibernate save基礎(chǔ)簡介
當(dāng)前鏈接:http://m.5511xx.com/article/djggheh.html