一、单表继承映射

  父子类合成一张表

  

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 继承映射的更多相关文章

  1. Hibernate4.x之映射关系--继承映射

    Hibernate的继承映射可以理解为持久化类之间的继承关系.例如:人和学生之间的关系.学生继承了人,可以认为学生是一个特殊的人,如果对人进行查询,学生的实例也将被得到. Hibernate支持以下三 ...

  2. EF里的继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子

    本章节讲解EF里的继承映射关系,分为TPH.TPT.TPC.具体: 1.TPH:Table Per Hierarchy 这是EF的默认的继承映射关系:一张表存放基类和子类的所有列,自动生成的discr ...

  3. 【Hibernate框架】三种继承映射

    一.综述 大家都知道,hibernate作为ORM框架的一个具体实现,最大的一个优点就是是我们的开发更加的能体现出"面向对象"的思想.在面向对象开发中,类与类之间是可以相互继承的( ...

  4. 《Entity Framework 6 Recipes》中文翻译系列 (35) ------ 第六章 继承与建模高级应用之TPH继承映射中使用复合条件

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-11  TPH继承映射中使用复合条件 问题 你想使用TPH为一张表建模,建模中使 ...

  5. 《Entity Framework 6 Recipes》中文翻译系列 (36) ------ 第六章 继承与建模高级应用之TPC继承映射

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 6-12  TPC继承映射建模 问题 你有两张或多张架构和数据类似的表,你想使用TP ...

  6. hibernate笔记--继承映射关系的三种实现方式

    单表继承映射(一张表): 假设我们现在有三个类,关系如下: Person类有两个子类Student和Teacher,并且子类都具有自己独有的属性.这种实体关系在hibernate中可以使用单表的继承映 ...

  7. 【JavaEE】Hibernate继承映射,不用多态查询只查父表的方法

    几个月前,我在博问里面发了一个问题:http://q.cnblogs.com/q/64900/,但是一直没有找到好的答案,关闭问题以后才自己解决了,在这里分享一下. 首先我重复一下场景,博问里面举的动 ...

  8. Hibernte继承映射

    继承映射分为三种: 继承结构共用一张表结构 每个类一张表结构 每个具体类一张表结构 下面使用Animal.Dog.Fish举例 Animal类如下: package com.hml.domain.a; ...

  9. Hibernate中的继承映射

    1.继承映射 继承映射分为两种情况:简单继承映射和继承映射. 在简单继承映射中,每个子类都要写一个映射文件. 在继承映射中,只使用一个映射文件.继承映射分为三种情况: 所有子类映射到一张表 需要使用鉴 ...

随机推荐

  1. 企业站做seo用什么程序好

    http://www.wocaoseo.com/thread-306-1-1.html 随着互联网的兴起,越来越多的人通过网络来了解自已想了解的资讯,网络营销已经慢慢的取代了传统的营销模式.很多企业现 ...

  2. python IDE(集成开发环境)——PyCharm的安装

    选择PyCharm的原因: 1.很多大佬都推荐,说适合实战操作项目 2.另外是界面可视化不错,颜色很舒服(体验完之后的感觉) 3.PyCharm本身有很多操作快捷键很方便(后续可以记下来常用的,方便自 ...

  3. 遍历查找集合或者数组中的某个元素的值 java代码 详解 Android开发

    import java.util.Scanner; public class Test21 { public static void main(String[] args) { //定义并初始化数组 ...

  4. docker搭建zabbix收集windows计数器性能数据

    1 docker服务的安装 1)在线安装docker服务 在线安装可以参考下面的安装步骤 a 安装相关依赖组件 yum install -y yum-utils device-mapper-persi ...

  5. ugui 自定义字体

    Unity/UI —— 使用字符图片自定义字体(Custom Font) ---[佳] https://blog.csdn.net/qq_28849871/article/details/777190 ...

  6. 合并模拟器和真机的静态库动态库aggregate

    创建Aggregate的target 在Build Phases 添加Run Script,内容为 scriptFile=${SRCROOT}/universalA.shsh ${scriptFile ...

  7. hdu6075 2019CCPC网络选拔赛1004 path

    题意:给定一个带权有向图,有q组询问,每次询问在有向图的所有路径中,第k小的路径权值 解题思路:因为k最大只有5e4,考虑暴力搜索出前maxk小的路径并用数组记录权值,然后就可以O(1)查询. 具体实 ...

  8. 洛谷 P4093 [HEOI2016/TJOI2016]序列 CDQ分治优化DP

    洛谷 P4093 [HEOI2016/TJOI2016]序列 CDQ分治优化DP 题目描述 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他. 玩具上有一个数列,数列中某些项的值可能会 ...

  9. 初探nmap

    nmap 也就是Network Mapper用来扫描电脑开发的端口 主要功能: 探测主机在线情况 扫描主机开发端口和对应的大概服务命令: nmap 127.0.0.1 查看该主机开放的端口和端.端口类 ...

  10. Eclipse插件开发中File和IFile的转换

    (1) File转IFile 第一种方法: IFile[] ifile = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationU ...