`
blueyanghualong
  • 浏览: 225332 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于继承映射(上)

阅读更多
关于继承映射 1 每个类分层结构一张表(Table per class hierarchy) <!-- 不同记录用鉴别字段来区分类型 --> <discriminator column="computer_type"></discriminator><subclass name="PC" discriminator-value="P"><property name="component"></property></subclass> 采用这种策略只需要一张表即可。它有一个很大的限制:要求那些由子类定义的字段, 如component,不能有非空(NOT NULL)约束。 优点:这样做的优点包括只有一张表查询简单以及容易与其他表进行关联 ,策略的性能调优要比其他策略容易得多,比较适合做数据仓库系统 ,因为所有数据在一张表里面 不需要做关联。 缺点:如果子类的属性过多 就会用很多 为null的属性 这为基于行的SQL调优增加了难度,SIG系统中使用了分区解决这个问题 2 每个子类一张表(Table per subclass) <joined-subclass name="PC" extends="Computer" table="t_pc"><key column="computer_id"></key><property name="component"></property></joined-subclass><joined-subclass name="NoteBook" extends="Computer" table="t_notebook"><key column="computer_id"></key><property name="duration"></property></joined-subclass> 需要四张表。三个子类表通过主键关联到超类表(因而关系模型实际上是一对一关联)。 优点:包括数据表比较紧凑(没有不需要的可空字段),数据跨三个子类的表进行分区,容易使用超类的表与其他表进行关联。紧凑的数据表可以针对基于行的数据库做存储块优化,让SQL执行得更好。数据分区增加了数据修改的并发性(除了超类,没有热点),OLTP系统通常会更好些 缺点:在所有策略中它使用的表和表连接最多 3 每个具体类一张表(Table per concrete class) 要用到的关键字<union-subclass>注意主键id不能重复 <class abstract="true"> --&gt;不建父类表 <!-- 继承映射,方案三,每个具体子类各自存放一张表 --> <class name="Computer" abstract="true"><union-subclass name="PC" extends="Computer" table="t_pc"><property name="component"></property></union-subclass><union-subclass name="NoteBook" extends="Computer" table="t_notebook"><property name="duration"></property></union-subclass></class></class></union-subclass>
分享到:
评论

相关推荐

    继承映射的

    ### 继承映射在IT行业的深入解析 #### 核心概念:继承映射与多态支持 在软件开发领域,尤其是使用ORM(对象关系映射)技术进行数据库操作时,“继承映射”是一个关键的概念。它允许在数据库中表示面向对象编程中的...

    继承映射的详细解说

    继承映射详细,非常实用的学习资料继承映射详细,非常实用的学习资料

    Hibernate继承映射代码

    本主题将深入探讨"Hibernate继承映射+C3P0代码"的相关知识点。 首先,让我们理解Hibernate的继承映射。在Java中,我们可以创建一个基类,然后派生出多个子类,这种设计模式在数据库中也可以被映射出来。Hibernate...

    Hibernate教程17_继承映射

    本教程主要探讨的是Hibernate中的“继承映射”特性,这是一项关键功能,它允许我们将复杂的类继承结构映射到数据库表中。通过继承映射,我们可以有效地管理和组织数据,提高代码的复用性和可维护性。 在Hibernate中...

    使用jpa映射关联和继承

    继承映射则适用于具有共同属性但又有所区别的实体,如不同类型的用户、不同状态的订单等,通过继承关系可以避免代码重复,提高代码复用性。 总结,JPA提供了强大的关联和继承映射机制,让开发者能更便捷地处理...

    用Hibernate映射继承关系

    它不考虑抽象类或继承关系,而是直接将每一个可实例化的类映射到独立的表上。 ##### 14.1.1 创建映射文件 为了使用表/类映射策略,你需要为每个具体类创建一个映射文件。映射文件应定义该类的属性与数据库表中的列...

    Hibernate继承映射的第一种策略:每棵类继承树对应一张表

    Hibernate继承映射是将Java类的继承关系映射到数据库表的一种策略,使得对象模型的复杂性能够平滑地转化为关系数据库模型。本篇将详细介绍Hibernate继承映射的第一种策略——每棵类继承树对应一张表,即单一表继承...

    14 继承(一)(整个继承树映射到一张表)

    4. **继承映射的配置**:在Hibernate的XML映射文件或注解中,需要显式声明继承关系。例如,使用`@Inheritance(strategy=InheritanceType.SINGLE_TABLE)`注解在父类上,然后在子类上使用`@DiscriminatorValue`指定...

    hibernate继承映射.rar

    《Hibernate继承映射详解》 Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作。在实际项目中,我们常常会遇到类的继承关系,而Hibernate提供了强大的支持来处理这种继承关系的...

    Hibernate继承映射-概述

    《Hibernate继承映射详解》 在Java开发中,对象关系映射(ORM)框架如Hibernate大大简化了数据库操作。Hibernate不仅提供了对基本数据类型的映射,还支持复杂的数据结构,如继承关系的映射。本篇文章将深入探讨...

    Hibernate继承映射(annotation)

    【标题】:“Hibernate继承映射(annotation)” 在Java对象关系映射(ORM)框架中,Hibernate是一个非常重要的工具,它允许开发人员将Java类映射到数据库表,从而简化了数据库操作。本主题主要探讨的是Hibernate中的...

    hibernate继承映射教学

    针对hibernate的继承映射部分做了几个测试的例子,更加直观的阐述了继承映射的几种方式以及对应的表结构方式,文件被分割成3部分 http://download.csdn.net/source/259075 http://download.csdn.net/source/259072 ...

    hibernate的继承映射教学

    针对hibernate的继承映射部分做了几个测试的例子,更加直观的阐述了继承映射的几种方式以及对应的表结构方式,文件被分割成3部分 http://download.csdn.net/source/259075 http://download.csdn.net/source/259072 ...

    Hibernate教程17_继承映射_补充2

    综上所述,`Hibernate教程17_继承映射_补充2`主要讲解了如何使用Hibernate的JOINED策略来处理类继承关系,以及如何在实际项目中进行配置和使用。通过理解和掌握这一策略,开发者可以更好地应对复杂的数据模型,提高...

    Hibernate教程17_继承映射_补充1

    在本教程中,我们将深入探讨Hibernate中的继承映射策略,特别是"Table Per Class"策略,这是Java对象模型到关系数据库映射的一种方法。在Hibernate框架中,继承是通过ORM(对象关系映射)来实现的,它允许我们将复杂...

    hibernate的继承映射关系

    ### Hibernate的继承多态映射关系详解 在软件开发领域,特别是使用面向对象编程语言如Java进行开发时,我们经常需要处理复杂的类继承关系。在ORM(Object-Relational Mapping)框架如Hibernate中,如何优雅地将这些...

Global site tag (gtag.js) - Google Analytics