继承映射之每个具体类张表
来源:互联网 发布:c语言怎么判断奇偶数 编辑:程序博客网 时间:2024/06/18 11:28
每个具体类一张表
这种策略是使用union-subclass标签来定义子类的。每个子类对应一张表,而且这个表的信息是完备的,即包含了所有从父类继承下来的属性映射的字段(这就是它跟joined-subclass的不同之处,joined-subclass定义的子类的表,只包含子类特有属性映射的字段)。实现这种策略的时候,有如下步骤:
父类用普通<class>标签定义即可
子类用<union-subclass>标签定义,在定义union-subclass的时候,需要注意如下几点:
这种策略是使用union-subclass标签来定义子类的。每个子类对应一张表,而且这个表的信息是完备的,即包含了所有从父类继承下来的属性映射的字段(这就是它跟joined-subclass的不同之处,joined-subclass定义的子类的表,只包含子类特有属性映射的字段)。实现这种策略的时候,有如下步骤:
父类用普通<class>标签定义即可
子类用<union-subclass>标签定义,在定义union-subclass的时候,需要注意如下几点:
Union-subclass标签不再需要包含key标签(与joined-subclass不同)
Union-subclass标签,既可以被class标签所包含(这种包含关系正是表明了类之间的继承关系),也可以与class标签平行。 当Union-subclass标签的定义与class标签平行的时候,需要在Union-subclass标签中,添加extends属性,里面的值是父类的全路径名称。
子类的其它属性,像普通类一样,定义在Union-subclass标签的内部。这个时候,虽然在union-subclass里面定义的只有子类的属性,但是因为它继承了父类,所以不需要定义其它的属性,在映射到数据库表的时候,依然包含了父类的所有属性的映射字段。
原理图如下:
!!!注意:在保存对象的时候id不能重复(不能使用数据库的自增方式生成主键)
具体映射如下:
<hibernate-mapping package="com.bjpowernode.hibernate">
<class name="Animal" table="t_animal" abstract="true"><!-- 因为有时这个抽象类没有必要生成表了,在这加个atstract=true则可以让他不生成表 -->
<id name="id">
<generator class="assigned"/>不能使用数据库的自增方式生成主键
</id>
<property name="name"/>
<property name="sex"/>
<union-subclass name="Pig" table="t_pig">
<property name="weight"/>
</union-subclass>
<union-subclass name="Bird" table="t_bird">
<property name="height"/>
</union-subclass>
</class>
</hibernate-mapping>
- 继承映射之每个具体类张表
- Hibernate继承映射之每个具体类一张表
- hibernate继承映射策略之每个具体类一张表
- Hibernate 继承映射实现方式之每个具体类对应一张表
- Hibernate 继承映射实现方式之每个具体类对应一张表
- 继承------类表映射-------每个具体类一张表
- Hibernate映射类继承之每个带有隐式多态的具体类一张表(每个子类各一张表,有各自的映射文件)
- Hibernate映射类继承之每个带有联合的具体类一张表(每个子类各一张表,共用一个父类映射文件)
- J2EE系列之Hibernate4学习笔记(十)--Hibernate继承关系映射(每个具体类对应一个表)
- 【SSH快速进阶】——Hibernate继承映射:每个具体类映射一张表
- hibernate继承关系映射方法(三)--每个具体类一张表TPC
- Hibernate学习笔记:继承映射之每个子类一张表
- Hibernate继承映射方式之每个子类一张表
- Hibernate继承映射之每个类一张表
- hibernate继承映射策略之每个子类一张表
- Hibernate学习笔记:继承映射之每个类继承结构一张表
- Hibernate学习笔记:继承映射之每个子类一张表,使用辨别标志
- Hibernate映射类继承之每个类层次结构一张表(父子类共用一张表,一个映射文件)
- 【翻译WINDOWS NT FILE SYSTEM INTERNAL】NT缓存管理器一(1)
- POI下JAVA导出基于模板的Excel
- linux下的so、o、lo、a、la文件的区别
- 简单三步实现导航分类二级菜单
- C++代码的维护,从一个实例说起
- 继承映射之每个具体类张表
- CXF 2.0 学习笔记-2(客户端)
- 最简单的动态代理实例(spring基于接口代理的AOP原理)
- JavaMail发送邮件
- Spring Security3 入门二
- 学习perl正则表达式
- 如何重载MFC对话框的OnInitDialog()函数
- 四舍五入
- java static程序块