真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java的ChangeSummary怎么用

這篇文章主要講解了“Java的ChangeSummary怎么用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java的ChangeSummary怎么用”吧!

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),景寧畬族自治企業(yè)網(wǎng)站建設(shè),景寧畬族自治品牌網(wǎng)站建設(shè),網(wǎng)站定制,景寧畬族自治網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,景寧畬族自治網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

ChangeSummary提供了訪問數(shù)據(jù)圖中數(shù)據(jù)對(duì)象的更改歷史信息的機(jī)制。

更改歷史覆蓋了一個(gè)數(shù)據(jù)圖自日志被激活開始的所有修改情況。如果日志不再處于激活狀態(tài),那么日志僅僅包括日志被凍結(jié)前的變更。否則它僅僅包括ChangeSummary被查詢以來的變更情況。盡管只有在日志激活時(shí),變更信息才開始被采集,但是無論無論日志被激活還是被關(guān)閉,你都可以查詢變更信息。所有查詢返回的信息都是只讀的。

該接口具有下列方法:

  • 激活或凍結(jié)日志。

  • 當(dāng)日志開始時(shí),重建一個(gè)DataObjects樹,并且清除日志。

  • 查詢?nèi)罩緺顟B(tài)。

  • 獲取ChangeSummary所屬的DataGraph。

  • 獲取ChangeSummary的根DataObject。

  • 獲取修改過的DataObject。

  • 指出是否一個(gè)數(shù)據(jù)對(duì)象已經(jīng)被創(chuàng)建、刪除或被修改。

  • 在日志開始時(shí),獲取容器類型的DataObject。

  • 在日志開始時(shí),獲取DataObject所包含的屬性。

  • 在日志開始時(shí),獲取DataObject的Sequence。

  • 獲取一個(gè)特殊的舊值。

  • 獲取一個(gè)舊值列表。

啟動(dòng)或停止一個(gè)更改日志

beginLogging()方法清除ChangeSummary中變更DataObject的列表并且啟動(dòng)一個(gè)更改日志。endLogging()方法停止更改日志。undoChanges()方法在日志開始時(shí)重建DataObject樹,undoChanges()方法同時(shí)也清除日志,但是對(duì)isLogging()方法沒有任何影響。

注意:beginLogging(), endLogging()以及 undoChanges()方法基本上是給服務(wù)實(shí)現(xiàn)使用的,這是由于服務(wù)定義了如何將ChangeSummary的處理與外部資源進(jìn)行關(guān)聯(lián)。ChangeSummary如果不能捕獲產(chǎn)生的變更,這將可能會(huì)引起服務(wù)基于ChangeSummary的不完整信息去執(zhí)行數(shù)據(jù)源的更新。

作用范圍(Scope)

ChangeSummary的作用范圍被定義為自ChangeSummary根開始的DataObject樹所包含的所有數(shù)據(jù)對(duì)象。ChangeSummary根對(duì)象是所有變更被跟蹤的源DataObject??梢酝ㄟ^getRootObject()方法獲取ChangeSummary根對(duì)象。該對(duì)象是下列之一:

  • 將ChangeSummary作為其屬性的一個(gè)值的數(shù)據(jù)對(duì)象。

  • 數(shù)據(jù)圖的根數(shù)據(jù)對(duì)象

舊值(Old Values)

使用getOldValues(DataObject dataObject)方法可以取得一個(gè)舊值列表。舊值的返回順序由實(shí)現(xiàn)具體決定。對(duì)于一個(gè)被刪除的DataObject,舊值列表包含了該DataObject的所有屬性。對(duì)于一個(gè)已經(jīng)被修改過的DataObject來說,舊值列表僅僅包含被修改的屬性。對(duì)于那些沒有被刪除和修改的DataObject來說,舊值列表為空。

舊值被描述為ChangeSummary.Setting對(duì)象(ChangeSummary.Setting是ChangeSummary的一個(gè)內(nèi)部接口)。每一個(gè)ChangeSummary.Setting都有一個(gè)屬性和一個(gè)值,同時(shí)還有一個(gè)用于指明屬性是否為集合的標(biāo)記。

如果一個(gè)DataObject被刪除或修改,那么getOldValue(DataObject dataObject, Property property)方法將返回一個(gè)用于描述指定屬性的ChangeSummary.Setting,否則,它將返回null。如果舊值的setting.isSet()方法返回false,則該舊值沒有任何意義。

順序數(shù)據(jù)對(duì)象(Sequenced DataObject)

在日志開始時(shí),getOldSequence(DataObject dataObject)方法將返回一個(gè)數(shù)據(jù)對(duì)象順序的全部值。返回值可能為null。如果DataObject.getSequence()方法返回null,那么getOldSequence(DataObject dataObject)方法將返回null。

序列化與反序列化

當(dāng)ChangeSummary被反序列化時(shí),如果XML文件中有元素,那么其日志狀態(tài)將為on,除非changeSummary標(biāo)記日志為off。在下列條件下,一個(gè)序列化器必須在XML文件中生成一個(gè)元素:

  • 變更已經(jīng)被日志記錄(getChangedDataObjects().size() > 0)。

  • 沒有變更被日志記錄,但是在序列化時(shí),isLogging()方法為true。在該情況下,一個(gè)空或者 元素被建立。

日志的狀態(tài)被記錄進(jìn)changeSummary元素的logging屬性。

ChangeSummary的序列化在日志啟動(dòng)時(shí),包含了足夠多的用來重構(gòu)DataObject初始信息的信息。當(dāng)日志啟動(dòng)時(shí),新創(chuàng)建的數(shù)據(jù)圖中的屬性標(biāo)簽DataObject將不會(huì)被顯示出來,刪除的包含在ChangeSummary中的屬性標(biāo)簽對(duì)象將不再包含在數(shù)據(jù)圖中。標(biāo)簽可以是IDs,如果可用的話,也可以是sdo路徑表達(dá)式。

ChangeSummary元素的內(nèi)容可以是一個(gè)被刪除的數(shù)據(jù)對(duì)象的深拷貝,也有可能是一個(gè)數(shù)據(jù)對(duì)象的原型,該原型僅僅擁有數(shù)據(jù)類型的變更以及已經(jīng)改變過的屬性的值。

關(guān)聯(lián)更改摘要與數(shù)據(jù)對(duì)象

有兩種可能的方式用于關(guān)聯(lián)DataObject與ChangeSummary:

1、1、DataGraph使用getChangeSummary()方法獲取一個(gè)ChangeSummary。

該方法通常在對(duì)于DataObject樹而言ChangeSummary為外部的情況下采用。ChangeSummary從根數(shù)據(jù)對(duì)象開始跟蹤數(shù)據(jù)對(duì)象樹的變化,根數(shù)據(jù)對(duì)象可以通過DataGraph的 getRootObject()方法獲得。

2、DataObject的類型能夠包括一個(gè)用于包含ChangeSummary的屬性。

該方法常被用在ChangeSummary是DataObject樹的一部分的情形下,例如當(dāng)一個(gè)根DataObject是一個(gè)消息頭,該消息頭同時(shí)包含DataObject以及 ChangeSummary這二者的消息體。ChangeSummary從包含該ChangeSummary的DataObject開始跟蹤DataObject樹的變化。

更改摘要接口

ChangeSummary接口提供了下列方法:

  • 檢查日志的狀態(tài),或者開關(guān)日志;

  • 當(dāng)日志開始時(shí),重做日志里的所有變化;

  • 返回根DataObject和DataGraph;

  • 返回已經(jīng)被修改、創(chuàng)建或刪除的DataObject;

  • 識(shí)別出已經(jīng)發(fā)生的改變類型(修改、創(chuàng)建、刪除);

  • 返回已經(jīng)被更改或刪除掉的數(shù)據(jù)對(duì)象的舊值;

public interface ChangeSummary

{

void beginLogging();

void endLogging();

boolean isLogging();

void undoChanges();

DataGraph getDataGraph();

DataObject getRootObject();

List /*DataObject*/ getChangedDataObjects();

boolean isCreated(DataObject dataObject);

boolean isDeleted(DataObject dataObject);

boolean isModified(DataObject dataObject);

DataObject getOldContainer(DataObject dataObject);

Property getOldContainmentProperty(DataObject dataObject);

Sequence getOldSequence(DataObject dataObject);

public interface Setting

{

Object getValue();

Property getProperty();

boolean isSet();

}

Setting getOldValue(DataObject DataObject, Property property);

List /*Setting*/ getOldValues(DataObject dataObject);

}

感謝各位的閱讀,以上就是“Java的ChangeSummary怎么用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java的ChangeSummary怎么用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


當(dāng)前題目:Java的ChangeSummary怎么用
網(wǎng)站路徑:http://weahome.cn/article/jhggce.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部