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

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

阅读更多

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

1、理解如何映射
因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。
这种机制就是,在表中添加一个字段,用这个字段的值来进行区分。用hibernate实现这种策略的时候,有如下步骤:
父类用普通的<class>标签定义
在父类中定义一个discriminator,即指定这个区分的字段的名称和类型
如:<discriminator column=”XXX” type=”string”/>
子类使用<subclass>标签定义,在定义subclass的时候,需要注意如下几点:
Subclass标签的name属性是子类的全路径名
在Subclass标签中,用discriminator-value属性来标明本子类的discriminator字段(用来区分不同类的字段)的值
Subclass标签,既可以被class标签所包含(这种包含关系正是表明了类之间的继承关系),也可以与class标签平行。
当subclass标签的定义与class标签平行的时候,需要在subclass标签中,添加extends属性,里面的值是父类的全路径名称。
子类的其它属性,像普通类一样,定义在subclass标签的内部。

2、理解如何存储
在存储数据的时候,hibernate会自动将鉴别字段的值插入到数据库中,在加载数据的时候,
hibernate便能根据这个鉴别字段正确的加载对象

3、理解何为多态查询,即hibernate能够加载数据的时候自动鉴别其真正的类型

多态get(),支持
多态load(),设置Lazy=“false”时,支持
多态查询,支持

 

一张表

分享到:
评论

相关推荐

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

    本文将详细探讨“Hibernate继承映射的第一种策略:每个类对应一张表”的概念、实现方式以及其优缺点。 首先,我们需要理解Hibernate继承映射的基本策略。在面向对象编程中,类继承是常见的代码复用手段,但在数据库...

    Hibernate继承映射的第一种策略:每个具体类一张表

    本篇文章将详细探讨Hibernate继承映射的策略,特别是“每个具体类一张表”(Table Per Concrete Class)的映射方式。 在面向对象编程中,继承是常见的代码复用手段,但在关系型数据库中,这种概念并不直接对应。...

    用Hibernate映射继承关系

    第三种映射方式是**类表映射**(Class-Table Inheritance Mapping),其中继承关系树的每个类(包括抽象类)都有其对应的表。这需要使用外键来建立类之间的关系。 ##### 14.3.1 创建映射文件 `Employee`类的映射文件...

    hibernate的继承映射(InheritanceMapping)[文].pdf

    10.1. Hibernate继承映射的三种基本策略: 10.1.1. 每个类分层结构一张表(Table per class hierarchy) 这种策略将整个类继承树的所有实例存储在一张表中。表中包含所有子类的属性,通过一个鉴别器(discriminator...

    hibernate所有开发包

    3. Inheritance:Hibernate支持多种继承映射策略,如单表继承、联合继承和表-per-hierarchy。 四、关联映射 1. OneToMany/ManyToOne:一对多和多对一关系映射,使用@OneToMany和@ManyToOne注解,@JoinColumn定义...

    hibernate

    11. **继承映射**:Hibernate支持类的继承关系映射,可以将子类和父类映射到同一个表或者不同的表,以适应不同的业务场景。 12. **懒加载(Lazy Loading)**:Hibernate的懒加载机制允许延迟加载关联对象,直到真正...

    hibernate-3.5.6 源码

    3. **实体类(Entity)与映射文件(Hibernate Mapping File, HBM)**:在Hibernate中,每个数据库表通常对应一个Java类,这些类被称为实体类。`*.hbm.xml`文件用于定义实体类与数据库表之间的映射关系,包括字段对应...

    Hibernate类库

    12. **继承映射**:Hibernate也支持类继承的映射,可以将单表、子表或者联合表策略应用到继承层次结构中。 13. **懒加载(Lazy Loading)**:为避免不必要的数据库访问,Hibernate提供了懒加载机制,只有在真正需要...

    Hibernate 3.1.2中文文档

    11. **继承映射**:Hibernate支持单表继承、联合继承和表-per-hierarchy等多种继承策略,使得对象模型的继承关系可以映射到数据库。 12. **代理(Proxy)**:Hibernate利用Java的动态代理机制,在需要时懒加载关联...

    hibernate独立开发包

    10. **继承映射**:Hibernate允许实体类之间进行单表继承、联合继承和多表继承,以适应不同层次的类结构。 11. **延迟加载(Lazy Loading)**:为提高性能,Hibernate提供了延迟加载机制,只有当真正需要访问关联...

    HIBERNATE - Relational Persistence for Idiomatic Java

    Hibernate支持类的继承映射,如单表继承、联合继承和表-per-hierarchy等策略,使得继承层次结构的Java类可以映射到数据库的不同结构。 11. **延迟加载(Lazy Loading)**: Hibernate提供懒加载机制,允许只在...

    Hibernate In Action中文版电子书

    12. **实体关系映射策略**:包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),每种关系都有不同的配置和使用方式。 13. **实体继承**:Hibernate支持单表继承、联合继承和多表...

    Hibernate学习.pdf

    - **继承映射**: 支持多种继承策略,如单表继承、类表继承和子类表继承等。 #### 9. 对象操作 - **查询**: 使用HQL或原生SQL查询数据。 - **修改持久对象**: 直接修改对象的状态,Hibernate会自动同步到数据库。 -...

    Hibernate实战(第2版).pdf

    《Hibernate实战(第2版)》是一本深入探讨Java持久化框架Hibernate的专业书籍,它针对的是Java开发人员,特别是那些希望提升数据库管理效率和优化应用程序性能的开发者。Hibernate作为一个开源的对象关系映射(ORM...

Global site tag (gtag.js) - Google Analytics