`

16 继承(三)(把前面14,15讲的情况结合起来)

阅读更多

人类(Person)  , 男人(Men)继承"人"类, 女人(Women)继承"人"类,  UML请看15讲.

 

 

映射到两个表:

 

人类(Person) 与 男人(Men)类 映射到如下的t_person表中 , 有以下5个字段:

 

1 int  id                             //主键

2 varchar  name                 //父类中的姓名

3 int  age                          //父类中的年龄      

4 int/varchar   type             //区分"人","男人","女人"  的专用字段, 默认类型是varchar, 也可以指定为int类型.  叫鉴别器字段

                                                           //Person类:type值设为0, Men类: type值设为1, Women 类: 2


5 varchar   a                      //"男人"类专有属性   

 

 

女人(Women)类, 单独保存在一张表中.就像第15讲一样.

 

 

 

映射文件 例子就像下面:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping 
	package="包名">

	<class name="Person" discriminator-value="0">
		<id name="id">
			<generator class="hilo"/>
		</id>
		<!-- 鉴别器  ,重要 -->		
		<discriminator column="type" type="int"/>	
		
		<property name="name"/><!-- 父类的属性 -->
		<property name="age"/><!-- 父类的属性 -->		
		
		
		<!--  Men类的映射-->		
		<subclass name="Men" discriminator-value="1">
			<property name="a"/><!-- Men类专有的属性a -->
		</subclass>
		
		<!--  Women类的映射-->
		<subclass name="Women" discriminator-value="2">
			<join table="t_women">
				<key column="person_id"/>
				<property name="b"/> <!-- Women类专有的属性b -->
			</join>
		</subclass>		
	</class>
	
</hibernate-mapping>
 

 

 

 

 

 

保存与查询操作:  略..  请看14,15讲

 

 

 

 

 

分享到:
评论

相关推荐

    PHP教程全部PPT(共70讲)

    第三十一讲至第三十五讲:错误与异常处理 - 理解PHP中的错误类型,学习如何处理运行时错误。 - 引入异常处理机制,学习try-catch-finally结构。 第三十六讲至第四十讲:数据库操作 - 讲解MySQL数据库连接和查询,如...

    课件 第七讲:UGUI 基础

    - **UGUI**: 继承了NGUI的优点,并且与Unity引擎深度集成,提供了一整套完善的UI解决方案。 ##### UGUI的特点 - **紧密集成**: UGUI作为Unity引擎的一部分,与Unity其他组件和系统紧密集成。 - **稳定性高**: 经过...

    二十三种设计模式【PDF版】

    将牛郎织女分开(本应在一起,分开他们,形成两个接口),在他们之间搭建一个桥(动态的结合) 设计模式之 Flyweight(共享元) 提供 Java运行性能,降低小而大量重复的类的开销. C. 行为模式 设计模式之 Command(命令) ...

    PHP从入门到精通(第3版) 带目录

    5. **运算符与表达式**:介绍算术运算符、比较运算符、逻辑运算符等,并结合实际案例演示如何使用这些运算符。 6. **控制结构**:讨论条件语句(如if-else、switch-case)、循环语句(for、while)的使用方法及其...

    c#学习笔记.txt

    一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为中文是世界上最美丽的语言,可是...

    《ASP.NET 完全入门》

    ASP.NET技术就是由微软的.NET技术细化而来的,它跟ASP技术有些关系,然而又不是仅仅是一个继承,可以讲,ASP.NET跟ASP想比较的话,已经是变得面目全非了,当然好得至少是一个量级以上。 ASP.NET完全基于模块与组件,...

    asp.net完全入门

    ASP.NET技术就是由微软的.NET技术细化而来的,它跟ASP技术有些关系,然而又不是仅仅是一个继承,可以讲,ASP.NET跟ASP想比较的话,已经是变得面目全非了,当然好得至少是一个量级以上。 ASP.NET完全基于模块与组件,...

    C++常见问题解答

    使用`eof()`函数可以判断文件是否到达末尾,但在某些情况下可能需要结合其他条件使用。 #### 提高篇 33. **new和delete比malloc和free有哪些优点?** `new`和`delete`不仅分配和释放内存,还能调用构造函数和...

    JAVA SE应用程序设计 1-19章代码、课件

    10. **Java SE应用实战**:在第19章,通常会结合前面学过的知识,进行一个综合项目,如编写一个简单的GUI应用或网络应用,让学生将理论知识付诸实践。 每个章节的课件和源代码都提供了学习和动手实践的机会。PDF...

    C#微软培训资料

    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...

    整理后java开发全套达内学习笔记(含练习)

    注意:默认类型转换(自动类型提升)会丢失精度,但只有三种情况: int&gt;float; long&gt;float; long&gt;double. 看一下他们的有效位就明白。 二进制是无法精确的表示 0.1 的。 进行高精度运算可以用java.math包中...

Global site tag (gtag.js) - Google Analytics