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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
深入了解Hibernate自動狀態(tài)檢測

Hibernate自動狀態(tài)檢測為用戶帶來了很大的方便,它是通過一個方法來具體實現(xiàn)這個功能的,下面我們主要就該方法深入學習。

目前創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網(wǎng)站建設、域名、雅安服務器托管、網(wǎng)站改版維護、企業(yè)網(wǎng)站設計、方正網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

Hibernate的用戶曾要求一個既可自動分配新持久化標識(identifier)保存瞬時(transient)對象,又可更新/重新關聯(lián)脫管(detached)實例的通用方法。Hibernate自動狀態(tài)檢測是saveOrUpdate()方法實現(xiàn)了這個功能。

 
 
 
  1. // in the first session
  2. Cat cat = (Cat) firstSession.load(Cat.class, catID);
  3. // in a higher tier of the application
  4. Cat mate = new Cat();
  5. cat.setMate(mate);
  6. // later, in a new session
  7. secondSession.saveOrUpdate(cat);   // update existing state (cat has a non-null id)
  8. secondSession.saveOrUpdate(mate);  // save the new instance (mate has a null id)

saveOrUpdate()用途和語義可能會使新用戶感到迷惑。 首先,只要你沒有嘗試在某個session中使用來自另一session的實例,你就應該不需要使用update(), saveOrUpdate(),或merge()。有些程序從來不用這些方法。

◆通常下面的場景會使用update()或saveOrUpdate():

◆程序在第一個session中加載對象

◆該對象被傳遞到表現(xiàn)層

◆對象發(fā)生了一些改動

◆該對象被返回到業(yè)務邏輯層

◆程序調用第二個session的update()方法持久這些改動

◆saveOrUpdate()做下面的事:

◆如果對象已經(jīng)在本session中持久化了,不做任何事

◆如果另一個與本session關聯(lián)的對象擁有相同的持久化標識(identifier),拋出一個異常

◆如果對象沒有持久化標識(identifier)屬性,對其調用save()

◆如果對象的持久標識(identifier)表明其是一個新實例化的對象,對其調用save()

◆如果對象是附帶版本信息的(通過 或 ) 并且版本屬性的值表明其是一個新實例化的對象,save()它。

◆否則update() 這個對象

◆merge()可非常不同:

◆如果session中存在相同持久化標識(identifier)的實例,用用戶給出的對象的狀態(tài)覆蓋舊有的持久實例

◆如果session沒有相應的持久實例,則嘗試從數(shù)據(jù)庫中加載,或創(chuàng)建新的持久化實例

◆最后返回該持久實例

◆用戶給出的這個對象沒有被關聯(lián)到session上,它依舊是脫管的 。

這就是實現(xiàn)Hibernate自動狀態(tài)檢測的說明。


名稱欄目:深入了解Hibernate自動狀態(tài)檢測
網(wǎng)頁URL:http://www.5511xx.com/article/djjoghc.html