新聞中心
Hibernate繼承映射包含了三種不同的策略:

我們提供的服務有:成都網站建設、成都網站設計、微信公眾號開發(fā)、網站優(yōu)化、網站認證、潞城ssl等。為千余家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的潞城網站制作公司
每簇類使用一個表;
每個子類一個表;
每個具體內一個表(有限制)。
假設我們有四個類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">
- "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>
每個子類一個表,使用每個子類一個表的策略時,可以使用一個映射文件實現,也可以分成多個映射文件來實現。每個子類一個映射文件的情況:
文件名:Animal.hbm.xml
程序代碼:
- <class name="Animal" table="ANIMAL">
- "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的映射。
每個具體內一個表(有限制),使用每個具體內一個表(有限制)策略時,每一個子類的映射文件將要包含所有父類中的屬性,映射文件文件名:Dog.hbm.xml
程序代碼:
- <class name="Dog" table="DOG">
- "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繼承映射所包含了三種不同的策略的介紹,由此可以了解Hibernate繼承映射。
【編輯推薦】
- 初學者適用的Hibernate學習方法
- Hibernate實戰(zhàn)(第2版)讀書筆記
- Hibernate一對多關系的處理
- 十五道Hibernate面試題及答案
- Hibernate的性能優(yōu)化
網站題目:對Hibernate繼承映射的講解
標題路徑:http://www.fisionsoft.com.cn/article/djocspi.html


咨詢
建站咨詢
