一、单表继承映射

  父子类合成一张表

  

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. MPI小例子

    MPI示例 MPI时间函数测试 #include<stdio.h> #include<mpi.h> #include<stdlib.h> #include<t ...

  2. 4GL之Non-SCROLLING CURSOR

    在4gl中CURSOR可以说是每一个程序中都会有的,而CURSOR又分为三种SCROLLING CURSOR.Non-SCROLLING CURSOR.LOCKING CURSOR. Non-SCRO ...

  3. DVWA之文件上传(一)

    实验环境为三台虚拟机,网络互通,分别是: 1.kali,IP为192.168.230.131 2.win10,IP为192.168.230.142 3.server 2019,IP为192.168.2 ...

  4. 通过DatabaseMetaData数据库元信息类,获取特定数据库的元信息

    数据库版本:mysql8.0.18 ide:idea 2019.3 可以看到代码中连接的数据库为course_select,是一个学生的选课系统的数据库 然后通过DatabaseMetaData的ge ...

  5. 用java中的Arraylist实现电话本系统管理

    大致思路:创建一个电话本条目的类,在主类中实例化.用实例化的对象调用构造参数接收输入值,然后将此对象存入Arraylist的对象中,实现动态添加电话本条目. 该系统具备添加.删除.修改.查询所有和按姓 ...

  6. Istio安全-授权(实操三)

    Istio安全-授权 目录 Istio安全-授权 授权HTTP流量 为使用HTTP流量的负载配置访问控制 卸载 授权TCP流量 部署 配置TCP负载的访问控制 卸载 使用JWT进行授权 部署 使用有效 ...

  7. python笔记-字符串连接

    字符串连接 + 1.Java中其他基本数据类型和string做+,自动转成string处理 Python中没有此特性.需要先转成string再做拼接 2.每连接一次,就要重新开辟空间,然后把字符串连接 ...

  8. Left Mouse Button (bfs)

    Mine sweeper is a very popular small game in Windows operating system. The object of the game is to ...

  9. Kubernetes K8S在IPVS代理模式下Service服务的ClusterIP类型访问失败处理

    Kubernetes K8S使用IPVS代理模式,当Service的类型为ClusterIP时,如何处理访问service却不能访问后端pod的情况. 背景现象 Kubernetes K8S使用IPV ...

  10. java-程序流程控制

    判断结构 if(条件){}; if(条件){} else{ }; if(条件){}else{};格式类似3目运算:int a=2,b;b=(a>5)?7:8;这种格式比较简便 if(条件){ } ...