這篇文章主要講解了“Hibernate繼承映射所包含三種不同的策略的介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Hibernate繼承映射所包含三種不同的策略的介紹”吧!
十余年的渝北網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整渝北建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“渝北網(wǎng)站設(shè)計”,“渝北網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
Hibernate繼承映射包含了三種不同的策略:
每簇類使用一個表;
每個子類一個表;
每個具體內(nèi)一個表(有限制)。
假設(shè)我們有四個類Animal,Dog,Cat,文件名:Animal.java,
其代碼如下:
程序代碼:
class Animal { private String identifier; private String name; private String category; // setter and getter }
文件名:Dog.java
class Dog extends Animal { private String // setter and getter }
文件名:Cat.java
class Cat extends Animal { private String // setter and getter }
每簇類使用一個表,使用每簇類使用一個表的策略時,有一個限制就時子類不能有NOT NULL,映射文件為文件名:Animal.hbm.xml
程序代碼:
"identifier" type="string" column="IDENTIFIER"> class="uuid.hex"/> "ANIMAL_TYPE" type="string"/> "name" column="NAME" type="string"/> "Dog" discriminator-value="DOG"> "Cat" discriminator-value="CAT"> class>
每個子類一個表,使用每個子類一個表的策略時,可以使用一個映射文件實現(xiàn),也可以分成多個映射文件來實現(xiàn)。每個子類一個映射文件的情況:
文件名:Animal.hbm.xml
程序代碼:
"identifier" column="IDENTIFIER" type="string"> class="uuid.hex"/> class>
文件名:Dog.hbm.xml
程序代碼:
"Dog" table="DOG" extends="Animal"> "DOG_ID"/>
文件名:Cat.hbm.xml
程序代碼:
"Cat" table="CAT" extends="Cat"> "CAT_ID"/>
每個子類一個表的策略實際上一種one-to-one的映射。
每個具體內(nèi)一個表(有限制),使用每個具體內(nèi)一個表(有限制)策略時,每一個子類的映射文件將要包含所有父類中的屬性,映射文件文件名:Dog.hbm.xml
程序代碼:
"identifier" column="IDENTIFIER" type="string"> class="uuid.hex"/> "name" column="NAME" type="string"/> class>
文件名:Cat.hbm.xml
程序代碼:
"identifier" column="IDENTIFIER" type="string"> class="uuid.hex"/> "name" column="NAME" type="string"/> class>
感謝各位的閱讀,以上就是“Hibernate繼承映射所包含三種不同的策略的介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Hibernate繼承映射所包含三種不同的策略的介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!