Hibernate-繼承關(guān)系對應(yīng)
Hibernate對繼承關(guān)系的對應(yīng)主要有三種策略: 對每個類對應(yīng)一個表: 這樣在COMPANY一方不能設(shè)置SET屬性; 不能進(jìn)行查詢, 只能對每個類進(jìn)行單獨(dú)的查詢! 容易在多對一的一方產(chǎn)生冗余數(shù)據(jù)。而且產(chǎn)生冗余字段(E.G Company <-- --> Employee) 只對父類設(shè)定對應(yīng)的表: 在父類內(nèi)設(shè)定子類區(qū)別字段, 對每個子類特有的字段, 在父類內(nèi)中都存在。 這樣在父類的映射文件中, 設(shè)定Domanatrator屬性, 用來制定SUBCLASS的TYPE, 子類有SUBCLASS TARGET 對應(yīng)父類的DOMANATROTOR屬性, 并且制定自己的屬性。支持多態(tài) 缺點(diǎn)是不能保證數(shù)據(jù)完整性, 因?yàn)閷γ恳粋€子類單獨(dú)的字段, 父類的表必須允許其值為空。 對父類和子類單獨(dú)見表, 用外鍵進(jìn)行關(guān)聯(lián): 用JOIN-SUBCLASS TARGET進(jìn)行外鍵關(guān)聯(lián), 并用KEY TARGET來指定關(guān)聯(lián)屬性。支持多態(tài), 但查詢用到外連接, 不易性能。 SUMMARY: 對關(guān)系數(shù)據(jù)完整性要求較高用第一種方法, 子類的獨(dú)立字段不是很多用第二種方法, 否則用第三種方法。posted on 2006-08-30 08:23 Sheldon Sun 閱讀(547) 評論(0) 編輯 收藏