`
Getwaysun
  • 浏览: 32076 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate+DISCRIMINATOR+column

 
阅读更多
tbl_item是一张表,Item是它一个po,ItemDetail也是它的一个po,ItemDetail继承于
Item,那么将Item和ItemDetail持久到数据库的tbl_item中,那么tbl_item又是怎么区分的呢??tbl_item中有个字段DISCRIMINATOR,它是来区分的。

来看下他们的映射文件:

<class name="com.core.server.model.base.Item"   
table="tbl_item"  
discriminator-value="2">  
<id name="id" column="id"><generator class="native" /></id>  
<discriminator column="DISCRIMINATOR" type="int"/>  



<subclass name="com.core.server.model.base.ItemDetail"   
extends="com.core.server.model.base.Item"  
discriminator-value="1">  
</subclass> 


当你用Item时hibernate就会将tbl_item表中的DISCRIMINATOR值置为2;当你用ItemDetail时hibernate就会将tbl_item表中的DISCRIMINATOR值置为1
分享到:
评论

相关推荐

    Hibernate+中文文档

    5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. 多次...

    Hibernate3+中文参考文档

    5.1.19. 字段和规则元素(column and formula elements) 5.1.20. 引用(import) 5.1.21. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5.3. SQL中引号包围...

    @hibernate Tag Reference

    @hibernate.discriminator(column="type") public abstract class Animal { // ... } ``` ##### 1.4 @hibernate.jcs-cache (0..1) **功能描述**:启用JCS缓存。 **参数**:与@hibernate.cache相似,主要用于定义...

    hibernate Table per class hierarchy 例子代码

    此外,Hibernate还会添加一个`discriminator column`,默认是`discriminator_value`,用来标识每条记录的实际类型。 配置Hibernate映射文件(如果是XML配置)时,需要设置`&lt;class&gt;`元素的`discriminator-value`属性...

    Hibernate3.5官方开发文档pdf + html

    6. **继承映射**:单表继承、联合继承和多表继承的策略,以及@Inheritance、@DiscriminatorColumn和@DiscriminatorValue等注解的使用。 7. **懒加载与立即加载**:理解懒加载(Lazy Loading)和立即加载(Eager ...

    Hibernate继承映射代码

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

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

    这个类型标识字段在Hibernate中称为`discriminator column`,它是一个特殊的列,用于区分不同的子类。Hibernate会自动处理这个字段,开发者只需要在配置文件或者注解中指定。 #### 实现步骤 1. **定义父类**:创建...

    Hibernate教程17_继承映射

    为了实现这种映射,Hibernate使用了一个称为"discriminator column"的特殊列,这个列用于区分不同类的实例。例如,假设我们有一个基类`Animal`,以及两个子类`Dog`和`Cat`,在数据库表中,每个记录都会包含一个表示...

    hibernate

    3. **单表继承(Single Table Inheritance)**: 这是最简单的继承策略,所有的子类数据都存储在同一个数据库表中,通过一个特定的列(通常为discriminator column)来区分不同子类的对象。 - discriminator value:...

    hibernate-mapping

    在XML映射文件中,可以使用`&lt;subclass&gt;`或`&lt;joined-subclass&gt;`元素来定义子类,而在注解方式下,可以使用`@Inheritance`和`@DiscriminatorValue`等注解。 7. Collection Mapping(集合映射) 当一个对象需要关联多...

    hibernate annotaion api 中文与英文版

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

    hibernate annotation 中文文档

    - `@Column`: 用于字段,映射到数据库表的列,可以设置列名、长度、是否可为空等属性。 - `@GeneratedValue`: 用于主键字段,定义主键生成策略,如.AUTO(自增)或.SEQUENCE(序列)。 - `@OneToOne`, `@...

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

    在Java世界中,ORM(对象关系映射)框架如Hibernate极大地简化了数据库操作。本篇主要探讨的是Hibernate中的继承映射策略,特别是“每个子类一张表”(Table per subclass)的方式。这种方式也被称为单表继承或多表...

    hibernate-annotations-3.4.0.jar

    @DiscriminatorColumn(name = "discriminator") public abstract class BaseEntity { // ... } ``` 5. **查询注解**:除了基本的CRUD操作,Hibernate还提供了`@NamedQuery`和`@NamedNativeQuery`注解来定义预...

    Hibernate继承映射(annotation)

    - 这种策略将所有继承类的数据存储在一个单一的表中,通过一个特殊字段(通常是`discriminator_column`)来区分不同类的实例。 - Hibernate使用`@Inheritance(strategy=InheritanceType.SINGLE_TABLE)`注解来声明...

    Hibernate注解jar包

    - `@Column`:定义字段在数据库表中的列名,可设置长度、是否允许为空等属性。 3. **属性注解**: - `@Basic`:默认注解,用于基本类型或引用类型的属性。 - `@Temporal`:针对日期和时间类型的属性,指定存储...

    用Hibernate映射继承关系

    一个额外的字段,通常叫做`discriminator_column`,用来区分不同类的实例。优点是数据冗余少,但可能导致列数量较多,且查询时可能需要额外的类型判断。 2. **联合表继承(Joined Table Inheritance)** 每个子类...

    Hibernate 注解说明文档

    2. **@DiscriminatorColumn**和**@DiscriminatorValue**: 在单表继承策略中,用于添加鉴别列和值。 3. **@Embeddable**和**@Embedded**: 支持复杂类型嵌入,将多个属性打包成一个复合类型。 六、懒加载和级联操作 ...

    Hibernate配置文件中映射元素详解

    &lt;discriminator column="subclass" type="character"/&gt; ``` ### 关联映射 - **一对一映射**:使用`&lt;many-to-one&gt;`元素表示,如`&lt;many-to-one name="friend" column="friend_id" update="false"/&gt;`。 - **一对多...

Global site tag (gtag.js) - Google Analytics