Hibernate继承映射所包含三种不同的策略的介绍
这篇文章主要讲解了“Hibernate继承映射所包含三种不同的策略的介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate继承映射所包含三种不同的策略的介绍”吧!
十余年的渝北网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整渝北建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“渝北网站设计”,“渝北网站推广”以来,每个客户项目都认真落实执行。
Hibernate继承映射包含了三种不同的策略:
每簇类使用一个表;
每个子类一个表;
每个具体内一个表(有限制)。
假设我们有四个类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>
每个子类一个表,使用每个子类一个表的策略时,可以使用一个映射文件实现,也可以分成多个映射文件来实现。每个子类一个映射文件的情况:
文件名: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的映射。
每个具体内一个表(有限制),使用每个具体内一个表(有限制)策略时,每一个子类的映射文件将要包含所有父类中的属性,映射文件文件名: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继承映射所包含三种不同的策略的介绍”的内容了,经过本文的学习后,相信大家对Hibernate继承映射所包含三种不同的策略的介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
文章标题:Hibernate继承映射所包含三种不同的策略的介绍
当前链接:http://cdiso.cn/article/pspdoj.html