类(Person) , 男人(Men)继承"人"类, 女人(Women)继承"人"类, UML如下:
映射到三张表 , 每一个具体的类 映射到一张表,继承映射要求父子类的主键不能重复
t_person表
:
1 int id //主键
2 varchar name //父类中的姓名
3 int age //父类中的年龄
t_men表
:
1 int id //主键
2 varchar name //父类中的姓名
3 int age
4 varchar a //"男人"类扩展的属性
t_women表
:
1 int id //主键
2 varchar name //父类中的姓名
3 int age
4 varchar b //"女人"类
扩展的
属性
Person, Men, Women 三个类这里就不显示了,但简单, 想看了附件中有源码
Person.hbm.xml 如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
package="extends_test.extends_4" auto-import="false">
<class name="Person" table="t_person4" >
<!-- 父类的属性 -->
<id name="id">
<!-- 重点 -->
<!-- 不能用这种主键生成器 generator class="native" -->
<!-- class="native" 主键是自增长的, 父子类的主键会重复,但继承映射要求不能重复 -->
<!-- 高低位生 主键生成器 -->
<generator class="hilo"/>
</id>
<property name="name"/><!-- 父类的属性 -->
<property name="age"/><!-- 父类的属性 -->
<!-- Mem子类的映射 -->
<union-subclass name="Men" table="t_men4">
<!-- Men类专有的属性a -->
<property name="a"/>
</union-subclass>
<!-- Women子类的映射 -->
<union-subclass name="Women" table="t_women4">
<!-- Men类专有的属性a -->
<property name="b"/>
</union-subclass>
</class>
</hibernate-mapping>
保存与查询操作: 略... 见14,15讲
分享到:
相关推荐
NULL 博文链接:https://elf8848.iteye.com/blog/341363
hibernate实现继承关系映射的方式有三种,这种方式是将每个类都映射成一张表。
博文链接:https://shaqiang32.iteye.com/blog/201321
博文链接:https://shaqiang32.iteye.com/blog/201319
NULL 博文链接:https://quicker.iteye.com/blog/658411
NULL 博文链接:https://quicker.iteye.com/blog/658432
Hibernate的继承映射 --每个继承层次一张表 -- 每个具体类一张表 -- 每个类一张表
博文链接:https://shaqiang32.iteye.com/blog/201320
图14-4继承关系树的根类对应一个表Company类和Employee类有相应的映射文件,而HourlyEmployee类和SalariedEmployee类没有相应的映射文件。图14-5显示了持久化类、映射文件和数据库表之间的对应关系。图14-5持久化类...
1. 创建一个注解项目 1.1. 系统需求 1.2. 系统配置 2. 实体Bean 2.1. 简介 2.2. 用EJB3注解进行映射 2.2.1. 声明实体bean 2.2.1.1. 定义表(Table) 2.2.1.2. 乐观锁定版本控制 2.2.2. 映射简单属性 2.2.2.1. ...
10.1.5. 每个具体类一张表(Table per concrete class) 10.1.6. Table per concrete class, using implicit polymorphism 10.1.7. 隐式多态和其他继承映射混合使用 10.2. 限制 11. 与对象共事 11.1. Hibernate对象...
1. 创建一个注解项目 1.1. 系统需求 1.2. 系统配置 2. 实体Bean 2.1. 简介 2.2. 用EJB3注解进行映射 2.2.1. 声明实体bean 2.2.1.1. 定义表(Table) 2.2.1.2. 乐观锁定版本控制 2.2.2. 映射简单属性 2.2.2.1. 声明基本...