`
yesjavame
  • 浏览: 691883 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

关于table per subclass继承映射的注意点

阅读更多
对于table per subclass继承映射的方式,由于在数据库级别没办法控制,经常会出现映射父表与子表的记录条数不一致的情况,具体来说,就是父表有某条记录,而子表没有.在这种情况下,继承关系就不匹配了,若进行update与delete操作,就会出现异常net.sf.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) for com.ebao.ls.prd.pds.bo.PdsType instance with identifier: 4,这个异常是由于父类中有主键为4这条记录,而子表没有.
我想这种问题的解决方式,应该有两种:
1.不要手工改动数据表的数据,尤其是删除;
2.写一个trigger来控制两个表的数据严格一一对应
分享到:
评论

相关推荐

    继承映射的

    在“extendMapping”项目中,可以看到`<joined-subclassname>`元素的使用,它允许每个子类拥有自己的表,并通过外键关联到基类表,形成所谓的“join table per subclass”策略。这种方式不仅能够避免单个表过于臃肿...

    Hibernate教程17_继承映射

    在Hibernate中,继承映射主要有三种策略:单表继承(Single Table Inheritance)、联合继承( Joined Table Inheritance)和表格-per-类继承(Table per Concrete Class)。本教程可能主要关注的是单表继承,这也是...

    hibernate

    `Table Per Subclass` 是一种处理多态继承关系的策略,它将每个子类映射到数据库中的独立表。下面我们将通过具体的例子代码来探讨这一概念,并了解如何在实际项目中应用。 **一、Hibernate 概述** Hibernate 是一个...

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

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

    hibernate继承映射.rar

    在Hibernate的XML映射文件中,我们需要通过`<class>`、`<subclass>`等元素来配置继承关系。比如,对于单表继承,`<subclass>`元素需要指定discriminator-value,表明该子类的标识。对于联合继承,需要配置子类表与...

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

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

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

    10.1.2. 每个子类一张表(Table per subclass) 每个子类拥有自己的表,表与类一一对应。这种方式允许子类的字段设置非空约束,但会导致数据库中存在大量的小表,且关联查询可能会复杂。 10.1.3. 每个子类一张表,...

    Hibernate继承映射二:每个子类一张表

    本篇主要探讨的是Hibernate中的继承映射策略,特别是“每个子类一张表”(Table per subclass)的方式。这种方式也被称为单表继承或多表继承,是Hibernate支持的四种继承映射策略之一。了解并熟练掌握这种映射模式...

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

    这种策略是Hibernate提供的四种继承映射策略之一,其他还包括“表-per-hierarchy”,“表-per-concrete-class”和“joined-subclass”。 首先,让我们理解什么是继承映射。在面向对象编程中,类可以有继承关系,...

    hibernate 映射继承 demo

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

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

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

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

    - Hibernate提供了四种继承映射策略:`SINGLE_TABLE`、`JOINED`、`TABLE_PER_CLASS` 和 `MAPPED_SUPERCLASS`。每种策略都有其适用场景。 - `JOINED`策略适用于那些子类数据较少或者子类数量较多的情况,因为它能...

    Hibernate ORM - 继承关联关系之union-subclass

    而“union-subclass”策略是一种将继承树映射到多个表的方式,它允许所有子类共享一张主表,同时每个多余的子类特性会存储在单独的表中。 当我们使用“union-subclass”策略时,父类通常会有一个标识字段,用于区分...

    Hibernate继承映射

    【Hibernate继承映射】是Java开发中...以上就是关于Hibernate继承映射、一对一关系、组件映射以及HQL的基础知识,这些概念和实践技巧在Java企业级开发中非常常见,熟练掌握能有效提高数据操作的效率和代码的可维护性。

    继承关系映射和HibernateQBC查询

    2. **一整棵继承树对应一张表(Table per Class Hierarchy)** 此策略下,整个继承层次结构的所有实体类都将映射到同一张表中。这需要在表中添加一个额外的字段来区分不同的子类。这种方式适用于子类之间有较多...

    17 继承(四)每一个具体的类 映射到一张表

    标题中的“17 继承(四)每一个具体的类 映射到一张表”指出,我们将关注的是类继承在Hibernate中的映射策略。在传统的面向对象编程中,继承允许我们创建一个新类(子类)并继承父类的属性和方法,以此实现代码复用和...

    Hibernate数据关联映射与继承策略

    2. **表格_per_class继承(Table per Class Inheritance)**:每个子类都有自己的数据库表,适合子类数量多且各自具有独特属性的情况,避免了冗余,但可能增加数据库表数量。 3. ** Joined Subclass Inheritance( ...

    Hibernate PPT

    1.3 继承映射Hibernate 支持单表继承(Single Table Inheritance)、联合继承( Joined Table Inheritance)和表 per subclass(Table per Subclass)三种策略。1.3.1 单表继承(Single Table Inheritance)所有子类...

    Hibernate之实体层次设计

    单表继承(Table Per Hierarchy, TPH)、每类表继承(Table Per Concrete Class, TPCC)和每子类表继承(Table Per Subclass, TPS)。 1. 单表继承(TPH) TPH是最常见的继承策略,所有继承层次的实体都存储在一个...

    HibernateDemo003_TABLE_PER_CLASS.rar_class

    "HibernateDemo003_TABLE_PER_CLASS.rar_class" 提到的是一个关于Hibernate的示例,特别关注了“TABLE_PER_CLASS”策略。在这个示例中,我们将探讨Hibernate如何通过@TablePerClass策略自动生成数据库表,并了解这种...

Global site tag (gtag.js) - Google Analytics