freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

hibernate培訓(xùn)講座(已改無(wú)錯(cuò)字)

2022-10-23 22:40:02 本頁(yè)面
  

【正文】 ED = ? select BANK_ACCOUNT_ID, OWNER, NUMBER, CREATED, BANK_NAME, ...from BANK_ACCOUNT where CREATED = ? ? 父類的變動(dòng)困難:父類的變動(dòng)會(huì)影響所有的子類屬性,從而會(huì)影響多個(gè)表中的字段。 ? 僅僅用在不需要多態(tài)查詢的場(chǎng)合。 Table per class hierarchy 整個(gè)繼承樹對(duì)應(yīng)一張表,子類用 type discriminator字段來(lái)區(qū)分。這種方式在性能和簡(jiǎn)單性兩方面都做的很好。 父類的變動(dòng)很方便。 多態(tài)查詢 ? 查詢父類 select BILLING_DETAILS_ID, BILLING_DETAILS_TYPE,OWNER, ..., CREDIT_CARD_TYPE, from BILLING_DETAILS where CREATED = ? ? 查詢子類 select BILLING_DETAILS_ID,CREDIT_CARD_TYPE,CREDIT_CARD_EXP_MONTH, ...from BILLING_DETAILS where BILLING_DETAILS_TYPE=39。CC39。 and CREATED = ? ? problem:子類屬性對(duì)應(yīng)的 column不可以有not null的約束。 映射文件的格式 Table per subclass 這種設(shè)計(jì)符合數(shù)據(jù)庫(kù)的設(shè)計(jì)范式。 但是可能會(huì)有嚴(yán)重的性能問(wèn)題。 多態(tài)查詢的解決 —— 父類 ? 查詢父類:用 outer join 多態(tài)查詢的解決 —— 子類 ? 查詢子類:用 inner join ? 這種方式如果用手工寫代碼完成則很困難。 ? 查詢需要關(guān)聯(lián)多張表,對(duì)于復(fù)雜的繼承樹結(jié)構(gòu),性能是個(gè)大問(wèn)題。 映射文件格式 繼承策略選擇 ? 一般原則:如果你不需要多態(tài)查詢,可以考慮用 tableperconcreteclass,如果你需要多態(tài)查詢,并且子類的屬性差異不大,考慮用 tableperclasshierarchy,但是如果子類的屬性差異很大,考慮用 tablepersubclass。 ? 經(jīng)驗(yàn):對(duì)于一般的解決,盡量用 tableperclasshierarchy, tablepersubclass請(qǐng)慎重使用。 associations— 關(guān)聯(lián) ? 對(duì)象之間通過(guò) reference和 reference集合來(lái)關(guān)聯(lián),而關(guān)系模型則通過(guò)外鍵進(jìn)行關(guān)聯(lián)。 ? 對(duì)象的 reference是有方向性的,始終是單向的,如果需要雙向的,則需要定義兩次;外鍵則沒(méi)有方向性,或者說(shuō)天然就是雙向的,因此導(dǎo)航對(duì)于關(guān)系模型沒(méi)有意義。 ? 對(duì)象模型存在多對(duì)多的關(guān)系,而關(guān)系模型只有onetomany和 onetoone。 如果關(guān)系模型要實(shí)現(xiàn)多對(duì)對(duì),需要一個(gè) link table, 而這個(gè) link table不存在于對(duì)象模型中。 many to one one to many 雙向關(guān)聯(lián)產(chǎn)生的問(wèn)題 ? 在內(nèi)存中有兩個(gè)不同的地方代表同一個(gè)值:即外鍵 item_id ? 如果我們調(diào)用了(item)。(bid)。 hibernate會(huì)認(rèn)為是兩個(gè)不同的持久類發(fā)生了變動(dòng),它并不知道這兩個(gè)變動(dòng)實(shí)際上是指向同一個(gè)數(shù)據(jù)庫(kù)的字段, hibernate會(huì)更新兩次。 ? 我們需要告訴 hibernate這是一個(gè)雙向的關(guān)聯(lián)。 主控方和被控方 ? inverse=“true”即告訴 hibernate對(duì)方是主控方。 由 bid端負(fù)責(zé)保持和 數(shù)據(jù)庫(kù)的同步。 ? 如果調(diào)用 (bid)。則不發(fā)生任何持久化動(dòng)作,只有調(diào)用了 (item)。才持久化。 ? 原則:應(yīng)該將 many端設(shè)為主控方,這樣有助于改善性能。 cascading save ? 當(dāng)我們把 bid加入到 item, 并且把 item持久化的時(shí)候, 我們希望 bid能夠自動(dòng)的 持久化,而不用顯示的去調(diào)用。 ? cascade屬性告訴 hibernate bid可以被級(jí)聯(lián)持久化。 ? cascade是有方向性的,也可以在 bid端設(shè)置級(jí)聯(lián)持久化 item,但是因?yàn)?bid是在 item后創(chuàng)建的,這樣做沒(méi)有意義。 cascading delete ? Item 和 bid應(yīng)該是父子關(guān)系, item如果被刪除, bid也應(yīng)被刪除。子對(duì)象的生命周期依賴于父對(duì)象。 ? 這類似于 Entity/Component的關(guān)系,但是有本質(zhì)的區(qū)別。 Bid可以單獨(dú)的被加載,而ponent不能; bid可被共享而ponent不能。 ? bid如果被 item內(nèi)的集合刪除,則應(yīng)該在持久化層被刪除。 目 錄 ? 持久層的概念及必要性 ? hibernate框架及核心類介紹 ? hibernate進(jìn)行持久化的一個(gè)例子 ? hibernate如何解決對(duì)象和模型的不匹配 ? 對(duì)象的持久性生命周期 ? 對(duì)目前項(xiàng)目的進(jìn)一步封裝和思考 對(duì)象的持久生命周期 ? 持久類和一般類只有概念上的區(qū)別,從代碼上看沒(méi)有區(qū)別,持久類不知道自己的持久狀態(tài),所有的業(yè)務(wù)邏輯也與對(duì)象是在內(nèi)存中還是在數(shù)據(jù)庫(kù)中無(wú)關(guān)。 ? 內(nèi)存中的對(duì)象只有兩種狀態(tài):有用和無(wú)用。 ? Hibernate通過(guò) session來(lái)控制對(duì)象的持久生命周期: transient,persistent, detached. Transient objects ? new生成的對(duì)象稱為 Transient, 它沒(méi)有與數(shù)據(jù)庫(kù)中的某一行記錄關(guān)聯(lián),一旦它被dereferenced就會(huì)被 JVM回收。 ? hibernate認(rèn)為所有的 transient對(duì)象都是非事務(wù)的, hibernate不提供對(duì)這些對(duì)象的回滾支持。 ? 僅僅被 transient對(duì)象 reference的對(duì)象也是transient對(duì)象。 Persistent objects ? persistent對(duì)象對(duì)應(yīng)數(shù)據(jù)庫(kù)的一條記錄,并且具有 database identity。 ? 對(duì)于 transient對(duì)象,調(diào)用 ()可以將其轉(zhuǎn)變?yōu)?persistent object。如果通過(guò)()加載一個(gè)對(duì)象,該對(duì)象也是persi
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1