tbl_user 是一张表。User是它一个po,NormalUser也是它的一个po,NormalUser继承于User,那么将User和NormalUser持久到数据库的tbl_user中,tbl_user是怎么区分的呢?tbl_user中有一个字段type,它是来区分的。
来看他们的映射文件:
<class name="com.apidoc.app.user.model.User"
table="tbl_user"
discriminator-value="2">
<id name="id" column="id"><generator class="native" /></id>
<discriminator column="type" type="int"/>
<subclass name="com.apidoc.app.user.model.NormalUser"
extends="com.apidoc.app.user.model.User"
discriminator-value="1">
</subclass>
当你用User时hibernate就会将tbl_user的type的值置为2,当你用NormalUser时hibernate就会将tbl_user的type的值置为1
这就区分了,而且不用你手动操作
分享到:
相关推荐
- `@DiscriminatorValue`: 在继承体系中,用于多态查询时的值区分。 4. **级联操作** - `@Cascade`: 可以定义实体间的级联操作,如SAVE_UPDATE、DELETE等,使得操作父实体时,子实体也能相应更新或删除。 5. **...
3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA TransactionManagers 9.1. 继承映射特性(Features of inheritance mappings) 16.1. 别名注射(alias injection names) 19.1. ...
在Java世界中,ORM(对象关系映射)框架如Hibernate极大地简化了数据库操作。本话题主要探讨的是Hibernate 3.2版本中的类继承关系处理,这是面向对象编程中常见的概念,但在数据库映射时需要特殊考虑。在Hibernate中...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
- `@DiscriminatorColumn` 和 `@DiscriminatorValue`: 在单表继承中,用于区分不同子类的字段和值。 **4. 嵌套注解与复合主键** - `@EmbeddedId` 和 `@Embeddable`: 用于创建复合主键,将多个字段组合成一个主键...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
在进行Hibernate项目的开发过程中,开发者经常会遇到对Hibernate描述符文件中各种注解(Tag)的应用需求。本文档旨在提供一个全面的@hibernate Tag参考指南,帮助开发人员更好地理解和使用这些标签。 #### 一、@...
03 03Hibernate_Component : 实体细粒度的划分,数据库中的一张表在程序中划分为几个部分的实体,配置文件和增、删、改、查的使用。 04 04Hibernate_Composite : 复合主键的使用,在开发中很少用到,一般良好的设计...
这个文档涵盖了Hibernate 3.2版本,该版本在ORM领域中具有广泛的应用和影响力。本文将深入探讨Hibernate的核心概念、配置、映射以及操作数据库的方法。 一、核心概念 1. **对象关系映射(ORM)**:Hibernate通过...
在Java的持久化框架Hibernate中,"Table per Class Hierarchy"是一种继承映射策略,它在数据库层面将类继承关系转换为单一表的结构。这种策略适用于子类相对较少,且共享很多公共属性的情况,因为它避免了为每个子类...
1. 单表继承:所有子类的数据都存储在一个表中,通常通过一个特定的字段(例如,discriminator column)来区分不同的子类。这是最节省空间但可能导致查询复杂化的策略。 2. 联合继承:每个子类都有自己的表,基类中...
10. `discriminator-value`:在多态映射中,用于区分不同子类的值,可以是null或非null。 11. `mutable`:默认为`true`,表示类的实例是可变的。如果设置为`false`,则对象被视为不可变,这会影响Hibernate的行为。...
10. **多态性支持**:Hibernate 支持多态性映射,这意味着父类和子类可以共享同一个数据库表,通过 discriminator 字段区分不同类型的实例。 深入研究 Hibernate-3.2 的源码,可以帮助我们理解其内部工作原理,更好...
- **鉴别器(discriminator)**: 用于区分继承结构中的不同子类。 - **版本(version)**和**timestamp**: 实体版本控制和时间戳的使用。 - **Property**: 映射实体类的属性。 - **多对一(many-to-one)**: 实体间...
- **1.1.7 加载并存储对象**:演示如何使用 Hibernate API 来加载数据库中的数据到 Java 对象,并将 Java 对象持久化到数据库。 ##### 1.2 第二部分 — 关联映射 此章节深入探讨了 Hibernate 中对象之间的关联映射...