山東傳統(tǒng)的DTO-40

作者:[195p4r] 發(fā)布時(shí)間:[2024-06-01 23:36:42]

山東傳統(tǒng)的DTO-40,粗妥爾油(CTO)是硫酸鹽制法制漿廠(chǎng)的副產(chǎn)品。

合理的DTO設(shè)計(jì)將會(huì)使得服務(wù)器和客戶(hù)端的通信更加順暢。但是合理的DTO設(shè)計(jì)仍然會(huì)減少返工的可能性。進(jìn)行拷貝然后作為DTO傳遞。所以了解一個(gè)結(jié)構(gòu)就夠了。使得開(kāi)發(fā)工作變得更快。當(dāng)域DTO不能滿(mǎn)足要求的時(shí)候就需要更加細(xì)粒度的DTO方案。目前主流的DTO解決方案有定制DTO、數(shù)據(jù)傳送哈希表、數(shù)據(jù)傳送行集。

就好像對(duì)域模型做了同樣的操作一樣。然后將修改后的DTO傳回服務(wù)器端由服務(wù)器對(duì)其進(jìn)行處理。需要注意的就是版本問(wèn)題。而且客戶(hù)端還可以通過(guò)將更新后的DTO回傳到服務(wù)器端以更新數(shù)據(jù)??梢钥焖俚貥?gòu)建出一個(gè)應(yīng)用。將客戶(hù)端和服務(wù)器端域?qū)ο篑詈显谝黄?。即使?duì)于Hibernate這種PO、DTO一體的系統(tǒng)來(lái)說(shuō)也會(huì)同樣導(dǎo)致客戶(hù)端的代碼要重新編譯或者修改。

PO的狀態(tài)管理可以脫離Session。這是任何人都無(wú)法忍受的。而且客戶(hù)端的代碼中一旦訪(fǎng)問(wèn)了沒(méi)有在服務(wù)端加載到的屬性就會(huì)發(fā)生“Session已關(guān)閉”的異常。那么采用一種更合理的形式把PO傳遞給客戶(hù)端就成為一個(gè)必須解決的問(wèn)題。這就是DTO生成器要解決的問(wèn)題??蛻?hù)端可以把DTO當(dāng)成一個(gè)沒(méi)有任何副作用的普通JavaBean使用。

允許客戶(hù)端將修改后的DTO傳遞回服務(wù)器端進(jìn)行更新。因?yàn)榭寺∫院蟮膶?duì)象仍然是和PO一樣的被代理對(duì)象。然后將客戶(hù)端需要的PO中的屬性賦值到DTO中。所以我們必須要通過(guò)一種機(jī)制知道對(duì)象的字段有哪些、字段的類(lèi)型是什么、字段是否是關(guān)聯(lián)對(duì)象、關(guān)聯(lián)的類(lèi)型是什么。下面就分別介紹通過(guò)這兩種元數(shù)據(jù)機(jī)制實(shí)現(xiàn)DTO生成器的方法。指定的屬性的粒度到關(guān)聯(lián)屬性。

可以通過(guò)SessionFactory獲取元數(shù)據(jù)接口的實(shí)例。通過(guò)將持久化對(duì)象的類(lèi)作為參數(shù)調(diào)用SessionFactory的getClassMetadata方法就可以得到關(guān)于此對(duì)象的所有元數(shù)據(jù)信息的接口ClassMetadata。下面是ClassMetadata接口的主要方法說(shuō)明。得到指定屬性的類(lèi)型。實(shí)體是否是版本化的。得到所有屬性的“是否允許為空”屬性。得到所有屬性的“是否LazyLoad”屬性。實(shí)體是否有主鍵字段。兩個(gè)方法就可以滿(mǎn)足要求了。這個(gè)類(lèi)型包含了字段的元數(shù)據(jù)信息。

最新推薦

/NEWS MEDIA