一晃就過(guò)了三個(gè)月了,已經(jīng)很久沒(méi)有寫(xiě)代碼了,感覺(jué)思維都快要停止跳動(dòng)了。剛才突然想起在以前單位開(kāi)發(fā)的一套ERP系統(tǒng)的一個(gè)問(wèn)題,這個(gè)系統(tǒng)的持久層采用的ORM框架是HIBERNATE,問(wèn)題是這樣的:
客戶的所有文檔及圖片等大數(shù)據(jù)均存放在BLOB字段中,在PO中有我們映射的對(duì)應(yīng)字段,在新增一條文檔記錄時(shí),當(dāng)然是要經(jīng)過(guò)兩部操作(即:先INSERT基本信息,并對(duì)BLOB字段置空初始化,然后再UPDATE BLOG字段,將文檔內(nèi)容存入數(shù)據(jù)庫(kù))。但在讀取該字段時(shí),卻只能讀前4K內(nèi)容,不知道HIBERNATE為什么要這樣限制?是顧及效率么?
如果是效率因素,我們完全可以將BLOB字段與基本信息分離,生成兩個(gè)PO,這樣我們可以通過(guò)延遲加載特性以提高效率,我想這么簡(jiǎn)單的一點(diǎn)HIBERNATE開(kāi)發(fā)組織并不可能想不到吧?那倒底會(huì)是什么原因呢?
望各位大俠指點(diǎn)指點(diǎn)!!
posted on 2005-05-20 15:35
狂人思維·成都 閱讀(2383)
評(píng)論(7) 編輯 收藏 所屬分類:
JAVA技術(shù) 、
J2EE應(yīng)用