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

Hibernate中discriminator

阅读更多
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

这就区分了,而且不用你手动操作
分享到:
评论
3 楼 337240552 2013-07-12  
2 楼 angel243fly 2010-08-08  
初学者学习了,万分感谢
1 楼 cleverbing 2008-06-13  

相关推荐

    hibernate annotation 中文文档

    - `@DiscriminatorValue`: 在继承体系中,用于多态查询时的值区分。 4. **级联操作** - `@Cascade`: 可以定义实体间的级联操作,如SAVE_UPDATE、DELETE等,使得操作父实体时,子实体也能相应更新或删除。 5. **...

    Hibernate+中文文档

    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. ...

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

    在Java世界中,ORM(对象关系映射)框架如Hibernate极大地简化了数据库操作。本话题主要探讨的是Hibernate 3.2版本中的类继承关系处理,这是面向对象编程中常见的概念,但在数据库映射时需要特殊考虑。在Hibernate中...

    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. 第...

    hibernate3.2中文文档(chm格式)

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    hibernate annotaion api 中文与英文版

    - `@DiscriminatorColumn` 和 `@DiscriminatorValue`: 在单表继承中,用于区分不同子类的字段和值。 **4. 嵌套注解与复合主键** - `@EmbeddedId` 和 `@Embeddable`: 用于创建复合主键,将多个字段组合成一个主键...

    Hibernate 中文 html 帮助文档

    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 Tag Reference

    在进行Hibernate项目的开发过程中,开发者经常会遇到对Hibernate描述符文件中各种注解(Tag)的应用需求。本文档旨在提供一个全面的@hibernate Tag参考指南,帮助开发人员更好地理解和使用这些标签。 #### 一、@...

    Hibernate3.1_学习源码

    03 03Hibernate_Component : 实体细粒度的划分,数据库中的一张表在程序中划分为几个部分的实体,配置文件和增、删、改、查的使用。 04 04Hibernate_Composite : 复合主键的使用,在开发中很少用到,一般良好的设计...

    Hibernate中文帮助文档

    这个文档涵盖了Hibernate 3.2版本,该版本在ORM领域中具有广泛的应用和影响力。本文将深入探讨Hibernate的核心概念、配置、映射以及操作数据库的方法。 一、核心概念 1. **对象关系映射(ORM)**:Hibernate通过...

    hibernate Table per class hierarchy 例子代码

    在Java的持久化框架Hibernate中,"Table per Class Hierarchy"是一种继承映射策略,它在数据库层面将类继承关系转换为单一表的结构。这种策略适用于子类相对较少,且共享很多公共属性的情况,因为它避免了为每个子类...

    Hibernate继承映射代码

    1. 单表继承:所有子类的数据都存储在一个表中,通常通过一个特定的字段(例如,discriminator column)来区分不同的子类。这是最节省空间但可能导致查询复杂化的策略。 2. 联合继承:每个子类都有自己的表,基类中...

    hibernate-mapping参数详解

    10. `discriminator-value`:在多态映射中,用于区分不同子类的值,可以是null或非null。 11. `mutable`:默认为`true`,表示类的实例是可变的。如果设置为`false`,则对象被视为不可变,这会影响Hibernate的行为。...

    Hibernate-3.2源码包

    10. **多态性支持**:Hibernate 支持多态性映射,这意味着父类和子类可以共享同一个数据库表,通过 discriminator 字段区分不同类型的实例。 深入研究 Hibernate-3.2 的源码,可以帮助我们理解其内部工作原理,更好...

    hibernate3.5.4中文帮助文档

    - **鉴别器(discriminator)**: 用于区分继承结构中的不同子类。 - **版本(version)**和**timestamp**: 实体版本控制和时间戳的使用。 - **Property**: 映射实体类的属性。 - **多对一(many-to-one)**: 实体间...

    hibernate_reference中文文档.pdf

    - **1.1.7 加载并存储对象**:演示如何使用 Hibernate API 来加载数据库中的数据到 Java 对象,并将 Java 对象持久化到数据库。 ##### 1.2 第二部分 — 关联映射 此章节深入探讨了 Hibernate 中对象之间的关联映射...

Global site tag (gtag.js) - Google Analytics