Hibernate继承映射包含了三种不同的策略:
我们提供的服务有:成都网站建设、成都网站设计、微信公众号开发、网站优化、网站认证、潞城ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的潞城网站制作公司
每簇类使用一个表;
每个子类一个表;
每个具体内一个表(有限制)。
假设我们有四个类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继承映射的讲解
当前URL:http://www.shufengxianlan.com/qtweb/news39/91689.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联