`
alexcheng
  • 浏览: 181834 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Concrete Table Inheritance

阅读更多
Concrete Table Inheritance - Represents an inheritance hierarchy of classes with one table per concrete class in the hierarchy.
Concrete Table Inheritance对继承体系结构中的每一个具体类都有一个表与其对应。需要保证同一个类体系结构中表的主键不重复。DBMS不能帮助你,你需要自己进行控制。很多情况下你都不能保证表间的主键的唯一性,这种情况下你可以通过避免使用超类的域或者使用包含了表标识符的复合键。另外一个问题是引用完整性约束。可能针对类继承体系结构中的非具体的类有引用完整性约束,而这样的类是没有对应的表的。就可能需要建立多个连接表。
Concrete Table Inheritance的优点:
  1. 每个表都是自我包容的,不包含不相关的域。
  2. 使用具体的mapper读取数据时不需要做join操作。
  3. 只有对应的类被访问时,数据库表才被访问。可以均衡访问负载。

Concrete Table Inheritance的缺点:

  1. 主键的问题很难处理。
  2. 不能对抽象类添加数据库关系。
  3. 当层次结构中的领域类的域变化时(push up or down),需要更改表结构。
  4. 当超类的域变化时,需要修改所有包含此域的表,因为超类的域在各个表之间是重复的。
  5. 对超类的查询需要检查所有的表,导致多次数据库访问或是weird join。
分享到:
评论

相关推荐

    (2)Hibernate3.2 中的类继承关系

    在Hibernate 3.2中,类继承有多种策略,包括单表继承(Single Table Inheritance)、联合继承(Joined Table Inheritance)和Concrete Table Inheritance。这些策略各有优缺点,适用于不同的场景。 1. 单表继承...

    hibernate

    5. **表分片继承(Concrete Table Inheritance)**: 每个子类都有一个单独的表,包含所有自身的属性和继承自父类的属性。父类没有对应的表。 - 优点: 数据表结构直观,无需discriminator列,适用于子类差异大,...

    hibernate关联映射实例

    主要有三种继承策略:单表继承(Single Table Inheritance, STI)、联合继承(Concrete Table Inheritance, CTI)和表-per-hierarchy(Table per Hierarchy, TPH)。STI将所有子类的记录都存入同一张表,通过一个...

    Hibernate继承映射代码

    Hibernate提供了四种继承策略:单表继承(Single Table Inheritance)、联合继承( Joined Table Inheritance)、表 per 类继承(Table per Class Inheritance)以及分层继承(Concrete Table Inheritance)。...

    Hibernate继承映射-概述

    3. **联合继承(Concrete Table Inheritance)**:每个子类都有自己的数据库表,且包含所有子类的属性,父类不映射为任何表。 二、单表继承 在单表继承中,所有的类实例数据都存储在一个表中。Hibernate通过`@...

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

    在某些情况下,"Single Table Inheritance"(单表继承)或"Concrete Table Inheritance"(具体表继承)可能是更合适的选择。 总之,"Hibernate教程17_继承映射_补充1"的源码涵盖了如何使用Hibernate将Java类的继承...

    hibernate 映射继承 demo

    Hibernate支持四种继承映射策略:单表继承(Single Table Inheritance)、联合继承( Joined Subclass)、表 per 类继承(Table per Class Inheritance)和子类表(Concrete Table Inheritance)。在实际应用中,最...

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

    Hibernate提供了多种继承映射策略,其中最常见的是单表策略(Single Table Strategy)、子类表策略(Table per subclass)和联合表策略(Concrete Table Inheritance)。 标题提到的“每个类对应一张表”策略,实际...

    hibernate对应关系详解

    6. **继承关系映射**:Hibernate支持类的继承关系映射,包括单表继承(Single Table Inheritance)、联合继承(Concrete Table Inheritance)和歧视值继承(Discriminator Value Inheritance)。单表继承所有子类...

    hibernate课件

    - **联合继承(Concrete Table Inheritance)**: 每个具体类对应一个表,共享部分属性存储在公共表中。 **9. 事务处理** - Hibernate 支持 JTA(Java Transaction API)和 JDBC 事务管理,确保数据操作的原子性和...

    Hibernate3 源代码

    - **联合继承(Concrete Table Inheritance)**: 每个子类都有自己的表,且包含父类的所有属性。 通过对 Hibernate3 的源代码进行学习,可以更深入理解 ORM 框架的工作原理,提升数据库操作的效率,同时也能为理解...

    将对象映射到关系数据库

    2. **每个具体类映射到单独的一张表**(Concrete Table Inheritance,CTI):每个子类有自己的表,表中存储该子类特有的属性。 3. **每个类单独映射到一张表**(Class Table Inheritance,CTI):基类和每个子类都有...

    hibernate学习笔记

    - **所有类放在一个表(Concrete Table Inheritance)**:每个类都有一个单独的表,但通过继承关系链接起来。 - **选择的原则**:基于性能需求、维护难度和数据一致性要求选择合适的继承映射策略。 #### 组件映射 ...

    jpa_practice

    JPA支持不同的继承策略,如单一表继承(Single Table Inheritance)、联合继承(Joined Table Inheritance)和Concrete Table Inheritance,用于处理实体类的继承关系。 在`jpa_practice-master`这个项目中,我们...

    java-persistence-with-hibernate:Java Persistence和Hibernate书籍中的代码示例

    6. **Inheritance Mapping**:Hibernate支持单表继承(Single Table Inheritance, STI)、联合继承(Joined Table Inheritance, JTI)和表格分片继承(Concrete Table Inheritance, CTI)。`@Inheritance`和`@...

    java面试常见问题之Hibernate总结

    - Union Subclass(Concrete Table Inheritance):每个具体类一张表,存储完整的对象信息。 6. Session的find()方法与Query接口的区别: - find()方法是简单的HQL查询,不支持参数绑定,已在Hibernate 3.x中被...

    spring-jpa-inheritance

    3. **表格派生(Table per Concrete Class Inheritance)**:每个具体类都有一个独立的表,没有父类表,只有子类的实例会有表记录。这种策略可以避免空字段,但不适合频繁跨类查询的情况。 Spring JPA通过`@...

    jpa/hibernate继承注解

    3. **表分区继承(Table per Concrete Class Inheritance, TPC)** TPC策略也被称为“单独表”或“每类一张表”。每个类都对应一个单独的数据库表,没有公共的父类表。这通常是默认的继承策略,不需要在父类上声明`...

    JPA 实现继承关系

    3. **表分区继承(Table per Concrete Class Inheritance)**: 每个具体类(包括父类和所有子类)都有一个独立的数据库表,没有公共的表来存储共享的属性。每个类都使用`@Inheritance(strategy = InheritanceType....

Global site tag (gtag.js) - Google Analytics