您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hibernate繼承映射所包含三種不同的策略的介紹”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Hibernate繼承映射所包含三種不同的策略的介紹”吧!
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
程序代碼:
<class name="Animal" table="TB_ANIMAL"> <ID NAME=< SPAN>"identifier" type="string" column="IDENTIFIER"> <GENERATOR < SPAN>class="uuid.hex"/> <DISCRIMINATOR COLUMN=< SPAN>"ANIMAL_TYPE" type="string"/> <PROPERTY NAME=< SPAN>"name" column="NAME" type="string"/> <SUBCLASS NAME=< SPAN>"Dog" discriminator-value="DOG"> <SUBCLASS NAME=< SPAN>"Cat" discriminator-value="CAT"> class>
每個子類一個表,使用每個子類一個表的策略時,可以使用一個映射文件實現(xiàn),也可以分成多個映射文件來實現(xiàn)。每個子類一個映射文件的情況:
文件名:Animal.hbm.xml
程序代碼:
<class name="Animal" table="ANIMAL"> <ID NAME=< SPAN>"identifier" column="IDENTIFIER" type="string"> <GENERATOR < SPAN>class="uuid.hex"/> class>
文件名:Dog.hbm.xml
程序代碼:
<JOINED-SUBCLASS NAME=< SPAN>"Dog" table="DOG" extends="Animal"> <KEY COLUMN=< SPAN>"DOG_ID"/>
文件名:Cat.hbm.xml
程序代碼:
<JOINED-SUBCLASS NAME=< SPAN>"Cat" table="CAT" extends="Cat"> <KEY COLUMN=< SPAN>"CAT_ID"/>
每個子類一個表的策略實際上一種one-to-one的映射。
每個具體內(nèi)一個表(有限制),使用每個具體內(nèi)一個表(有限制)策略時,每一個子類的映射文件將要包含所有父類中的屬性,映射文件文件名:Dog.hbm.xml
程序代碼:
<class name="Dog" table="DOG"> <ID NAME=< SPAN>"identifier" column="IDENTIFIER" type="string"> <GENERATOR < SPAN>class="uuid.hex"/> <PROPERTY NAME=< SPAN>"name" column="NAME" type="string"/> class>
文件名:Cat.hbm.xml
程序代碼:
<class name="Cat" table="CAT"> <ID NAME=< SPAN>"identifier" column="IDENTIFIER" type="string"> <GENERATOR < SPAN>class="uuid.hex"/> <PROPERTY NAME=< SPAN>"name" column="NAME" type="string"/> class>
感謝各位的閱讀,以上就是“Hibernate繼承映射所包含三種不同的策略的介紹”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Hibernate繼承映射所包含三種不同的策略的介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。