hibernate继承映射
2016-05-21 00:00
148 查看
我的例子中父类都设为抽象类。一般类没有测试
---------------------------------普通继承映射----------------------------
每个子类映射一张表,父类没有表:只需要写子类的hibernate的映射配置文件就行。
注意:通过父类查询数据库时 必须写父类的全名(类名+包名)
<class name="类名" table="表名">
<!-- 简单继承映射: 父类属性直接写 -->
<id name="主键">
<generator class="主键生成策略"></generator>
</id>
<property name="属性名(包括父类的属性名+子类的属性名)"></property>
</class>
--------------------------------不简单继承映射-----------------------------------------
所有子类映射到一张纸:(使用情况:子类多,并且每个子类属性极少)需要区分每个子类
数据库多一个字段来标记/区分子类(不推荐)
<class name="父类类名">
<!--注意:一定要指定鉴别器字段,否则报错!
鉴别器字段:作用是在数据库中区别每一个子类的信息, 就是一个列
discriminator-value="鉴别器字段名"
指定鉴别器字段,即type_字段的值
如果不指定,默认为当前子类的全名-->
<subclasss name="子类类名">
<property>属性
</subclass>
</class>
每个类都映射一个表(包括子类+父类)
<class name="父类名" table="父类表名">
<id name="主键">
<generator class="生成策略"></generator>
</id>
<property name="父类属性"></property>
<!--key 指定子类表的外键字段-->
<joined-subclass name="子类名" table="子类表">
<key column="外键"></key>
<property name="子类属性"></property>
</joined-subclass>
</class>
每个子类映射一个表,而且只有一个映射配置文件(父类没有表)
<class name="父类类名" abstract="true">
<!-- 如果用union-subclass节点,主键生成策略不能为自增长! -->
<id name="id">
<generator class="uuid"></generator>
</id>
<property name="name"></property>
<!--
union-subclass
table 指定为表名, 表的主键即为id列
-->
<union-subclass name="子类名" table="子类映射表名">
<property name="子类属性"></property>
</union-subclass>
</class>
---------------------------------普通继承映射----------------------------
每个子类映射一张表,父类没有表:只需要写子类的hibernate的映射配置文件就行。
注意:通过父类查询数据库时 必须写父类的全名(类名+包名)
<class name="类名" table="表名">
<!-- 简单继承映射: 父类属性直接写 -->
<id name="主键">
<generator class="主键生成策略"></generator>
</id>
<property name="属性名(包括父类的属性名+子类的属性名)"></property>
</class>
--------------------------------不简单继承映射-----------------------------------------
所有子类映射到一张纸:(使用情况:子类多,并且每个子类属性极少)需要区分每个子类
数据库多一个字段来标记/区分子类(不推荐)
<class name="父类类名">
<!--注意:一定要指定鉴别器字段,否则报错!
鉴别器字段:作用是在数据库中区别每一个子类的信息, 就是一个列
discriminator-value="鉴别器字段名"
指定鉴别器字段,即type_字段的值
如果不指定,默认为当前子类的全名-->
<subclasss name="子类类名">
<property>属性
</subclass>
</class>
每个类都映射一个表(包括子类+父类)
<class name="父类名" table="父类表名">
<id name="主键">
<generator class="生成策略"></generator>
</id>
<property name="父类属性"></property>
<!--key 指定子类表的外键字段-->
<joined-subclass name="子类名" table="子类表">
<key column="外键"></key>
<property name="子类属性"></property>
</joined-subclass>
</class>
每个子类映射一个表,而且只有一个映射配置文件(父类没有表)
<class name="父类类名" abstract="true">
<!-- 如果用union-subclass节点,主键生成策略不能为自增长! -->
<id name="id">
<generator class="uuid"></generator>
</id>
<property name="name"></property>
<!--
union-subclass
table 指定为表名, 表的主键即为id列
-->
<union-subclass name="子类名" table="子类映射表名">
<property name="子类属性"></property>
</union-subclass>
</class>
相关文章推荐
- hibernate组件映射
- java多线程内存可见性1
- 写了个 UIView 的 Extension 来实现圆角
- 补码
- servlet3.0
- ThreadLocal_OSIV模式_FIlter_Web ajax
- Ajax_XML_JSON
- 织梦模板网站收录慢没排名该怎么解决?
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 分享一个dapper简单封装
- 网站转exe客户端或app客户端的方法
- C++插件化开发,插件化系统
- 老倪膏药有效吗
- 老倪膏药官网
- V塑效果如何
- v塑
- 带你一周hold住HTML+CSS系列视频及相关文档
- 行内元素与块级元素比较全面的区别和转换
- C++11: std::call_once和std::one_flag
- 聊聊前端,JavaScript