Hibernate4.3 继承映射
一、单表继承映射
父子类合成一张表
|
An_id |
An_name |
gender |
Weight |
Height |
type |
|
1 |
dog |
1 |
300 |
D |
|
|
2 |
cat |
1 |
100 |
C |
在Animal.hbm.xml配置文件中:
1 <!-- 鉴别器,在单表中加入一列来区分子类的 -->
2 <discriminator column="type" type="string"></discriminator>
3 <subclass name="Dog" discriminator-value="d">
4 <!-- 子类中的属性映射 -->
5 <property name="weight"></property>
6 </subclass>
7 <subclass name="Cat" discriminator-value="c">
8 <property name="height"></property>
9 </subclass>
二、父子类继承映射
父类产生父类表,子类产生子类表
1 <!--
2 子类映射配置
3 name:子类的名字
4 table:子类映射表名
5 -->
6 <joined-subclass name="Pig" table="t_pig">
7 <!--
8 key:字表的主键设置
9 column:主键名称
10 -->
11 <key column="pid"></key>
12 <!-- 子类的属性映射 -->
13 <property name="weight"></property>
14 </joined-subclass>
15 <joined-subclass name="Bird" table="t_bird">
16 <!--
17 key:字表的主键设置
18 column:主键名称
19 -->
20 <key column="bid"></key>
21 <!-- 子类的属性映射 -->
22 <property name="height"></property>
23 </joined-subclass>
父子表的映射因为生成的表多张,查询的时候我们需要多表连接查询,所以效率没有单表继承映射高
三、子表继承映射
1 <!-- 字表映射,需要把父类的映射设置成抽象的(不会产生父表)
2 abstract="true"
3 -->
4 <class name="Animal" table="t_animal" abstract="true">
5 <!-- id
6 是主键映射配置
7 -->
8 <id name="anId" column="an_id">
9 <!--
10 generator:主键的映射策略
11 -->
12 <generator class="uuid"></generator>
13 </id>
14
15 <property name="anName" column="an_name"></property>
16 <property name="gender"></property>
17
18 <!-- 子表映射 -->
19 <union-subclass name="Pig" table="t_pig">
20 <property name="weight"></property>
21 </union-subclass>
22 <union-subclass name="Bird" table="t_bird">
23 <property name="height"></property>
24 </union-subclass>
Hibernate4.3 继承映射的更多相关文章
- Hibernate4.x之映射关系--继承映射
Hibernate的继承映射可以理解为持久化类之间的继承关系.例如:人和学生之间的关系.学生继承了人,可以认为学生是一个特殊的人,如果对人进行查询,学生的实例也将被得到. Hibernate支持以下三 ...
- EF里的继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子
本章节讲解EF里的继承映射关系,分为TPH.TPT.TPC.具体: 1.TPH:Table Per Hierarchy 这是EF的默认的继承映射关系:一张表存放基类和子类的所有列,自动生成的discr ...
- 【Hibernate框架】三种继承映射
一.综述 大家都知道,hibernate作为ORM框架的一个具体实现,最大的一个优点就是是我们的开发更加的能体现出"面向对象"的思想.在面向对象开发中,类与类之间是可以相互继承的( ...
- 《Entity Framework 6 Recipes》中文翻译系列 (35) ------ 第六章 继承与建模高级应用之TPH继承映射中使用复合条件
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-11 TPH继承映射中使用复合条件 问题 你想使用TPH为一张表建模,建模中使 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (36) ------ 第六章 继承与建模高级应用之TPC继承映射
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-12 TPC继承映射建模 问题 你有两张或多张架构和数据类似的表,你想使用TP ...
- hibernate笔记--继承映射关系的三种实现方式
单表继承映射(一张表): 假设我们现在有三个类,关系如下: Person类有两个子类Student和Teacher,并且子类都具有自己独有的属性.这种实体关系在hibernate中可以使用单表的继承映 ...
- 【JavaEE】Hibernate继承映射,不用多态查询只查父表的方法
几个月前,我在博问里面发了一个问题:http://q.cnblogs.com/q/64900/,但是一直没有找到好的答案,关闭问题以后才自己解决了,在这里分享一下. 首先我重复一下场景,博问里面举的动 ...
- Hibernte继承映射
继承映射分为三种: 继承结构共用一张表结构 每个类一张表结构 每个具体类一张表结构 下面使用Animal.Dog.Fish举例 Animal类如下: package com.hml.domain.a; ...
- Hibernate中的继承映射
1.继承映射 继承映射分为两种情况:简单继承映射和继承映射. 在简单继承映射中,每个子类都要写一个映射文件. 在继承映射中,只使用一个映射文件.继承映射分为三种情况: 所有子类映射到一张表 需要使用鉴 ...
随机推荐
- 2020.08.23 瞎扯周记之论短暂假期(QAQ)内要不要睡午觉
蒟蒻的假期都是很短暂的嘛 作为一只合格的蒟蒻 假期自然是很短暂的QAQ 只有短短的26h93360s(手动微笑) 总体来讲 假期只有两件事要干: 1.满足人体自身需求 2.满足作业需求 2.5.摸鱼 ...
- vue 中PDF实现在线浏览,禁止下载,打印
需求:在线浏览pdf文件,并且禁止掉用户下载打印的效果. 分析:普通的iframe.embed标签都只能实现在线浏览pdf的功能,无法禁止掉工具栏的下载打印功能.只能尝试使用插件,pdfobject. ...
- Android中的Activity四种启动模式(launchMode)
转载:http://blog.csdn.net/cjjky/article/details/7533110 我们在开发项目的过程中,会涉及到该应用中多个Activity组件之间的跳转 ...
- Xutils 的框架问题retry error, curr request is null Android开发之网络请问问题
没有网络权限也能导致这个问题 也可能是因为模拟机没联网的问题
- LinuxIP配置方法
一.双网卡双IP. eth0为电信,eth1为联通. # cd /etc/sysconfig/network-scripts/ # vi ifcfg-eth0 DEVICE=eth0 HWADDR=0 ...
- Color a Tree & 排列
Color a Tree 题目链接 好不可做?可以尝试一下DP贪心网络流.DP 似乎没法做,网络流也不太行,所以试一下贪心. 考虑全局中最大权值的那个点,如果它没父亲,那么一定会先选它:否则,选完它父 ...
- Unity调试外部DLL
1.更改DLL的.csproj工程配置文件,在里面添加如下属性:<PropertyGroup Condition=" '$(OS)' == 'Unix' "> ...
- python笔记-正则表达式
什么是正则表达式: 正则表达式是一个特殊的字符序列,能帮助我们方便的检查一个字符串是否与某种模式匹配(定义往往都很枯燥) 也称之为”模式“,即可用于检查一个给定的字符串是否符合某种模式 举例: 我们定 ...
- 关于JavaScript点击按钮打开多个页面被浏览器以广告嫌疑拦截怎么解决
JS点击按钮打开新的标签页,工作中遇到需要点击按钮打开一个或多个,需要用到window.open() 工作中我们可能需要打开多个,看以下代码: var data = [{ "id" ...
- P1082 同余方程(拓展欧几里德)
题目描述 求关于xx的同余方程 a x \equiv 1 \pmod {b}ax≡1(modb) 的最小正整数解. 输入输出格式 输入格式: 一行,包含两个正整数 a,ba,b,用一个空格隔开. 输出 ...