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