`
xujunJ2EE
  • 浏览: 71453 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

hibernate中主键设置对象类型的另一个好处

阅读更多
今天在junit的时候报org.hibernate.ObjectNotFoundException,检查了一下,发现是数据关联的问题,其他同事将对象A(Project)和对象B(Worker)的关联取消了,而我们的对象设置的是int类型,默认值是0,这样Project在获得worker的时候发现他的workerId是0,load()的时候在Worker表中找不到对应的记录,出现了异常。
然后我将int改成Integer,这样在插入一个新的Project的时候,workerId默认就是NULL,这样返回的时候Worker就是Null,而不会出现异常。
所以,除了robbin当初说的将主键设置为对象类型,不光可以在unsaved-value的设置上获得好处,在主外键关联的时候也是可以很方便的
希望大家以后能注意一下
分享到:
评论
2 楼 xujunJ2EE 2010-03-03  
int是值类型,值类型不能为null,Integer是对象类型,对象类型可以为null
1 楼 godspeed_yjx 2009-12-26  
不好意思,int和Integer有什么区别?

相关推荐

    Hibernate中主键生成策略

    在Java的持久化框架Hibernate中,主键生成策略是一个至关重要的概念,它决定了数据库表中主键值如何自动生成。主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成...

    Hibernate一对多使用非主键关联设置

    在标准的关系型数据库设计中,一对多关系意味着一个表中的记录可以与另一个表中的多个记录相关联。例如,一个部门可以有多名员工,而每个员工只属于一个部门。在Hibernate中实现这种关系,我们不一定要依赖主键作为...

    Hibernate主键生成方式

    在Java的持久化框架Hibernate中,主键生成策略是一个关键的概念,它决定了如何为数据库中的实体对象生成唯一的标识符(主键)。以下是关于Hibernate主键生成方式的详细说明: 1. **Identity方式**:`...

    hibernate复合主键映射

    这里,`@Embeddable`注解告诉Hibernate这是一个可以嵌入到其他实体中的类,它将作为复合主键的一部分。 然后,在包含复合主键的实体类中,我们需要使用`@EmbeddedId`注解: ```java import javax.persistence....

    Hibernate主键生成策略

    在 Hibernate 中,主键生成策略是一个重要的概念,用于指定如何为持久化对象生成唯一的标识符(即主键)。合理的主键生成策略不仅能提高应用程序的性能,还能确保数据的一致性和完整性。 #### 二、主键生成策略分类...

    hibernate主键生成策略详解

    ### hibernate主键生成策略详解 #### 一、assigned **assigned** 主键生成策略意味着主键的值是由外部程序负责生成的,并且在执行 `save()` 方法之前必须明确指定一个值。在这种策略下,Hibernate 不参与主键的...

    hibernate主键生成策略

    - **应用场景**:当需要使用另一个表的主键作为当前表的主键时使用。 - **特点**: - 实现灵活,便于构建复杂的数据关系。 - 适用于复杂的业务逻辑。 ##### 11. **Select** - **简介**:`select` 策略通过执行 ...

    hibernate的主键生成策略

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。在Hibernate中,主键生成策略是确保实体类中的主键字段具有唯一标识的关键部分。以下是对Hibernate主键生成策略的...

    hibernate一对一主键关联映射(单项关联)

    在一对一主键关联映射中,"单项关联"指的是在一个实体类中定义了对另一个实体类的引用,而另一个实体类并未反过来引用。这通常是由于业务逻辑上的需求,例如,一个人只有一个身份证,但身份证并不知道它属于哪个人。...

    Hibernate教程07_关系映射之一对一双向主键关联

    在本教程中,我们将深入探讨Hibernate中的一个关键概念——关系映射,特别是“一对一双向主键关联”。这种关联类型是数据库设计中的常见模式,它允许两个实体类之间通过共享相同的主键来建立关联。在Java应用中,...

    Hibernate一对一主键关联映射(双向关联)

    "双向关联"则意味着在两个实体类中,都可以直接访问到对方的实例,即在实体A中有一个对实体B的引用,同时在实体B中也有一个对实体A的引用。 在实际配置中,我们可以使用以下元素来实现这种映射: 1. `@OneToOne`:...

    Hibernate各种主键生成策略与配置详解

    - 需要一个额外的表来存储高位值。 - 生成过程分为两步:获取高位值,然后根据低位值生成最终的主键值。 - 适用于大部分场景,尤其是需要高并发性能的应用。 **应用场景:** - 大多数Web应用程序和企业级应用都可以...

    Hibernate主键策略-sequence

    在`nextValue()`方法中,它会与数据库进行交互,获取序列的下一个值。这个过程涉及到JDBC操作,包括SQL的执行和结果的处理。 3. **性能考虑** 使用序列主键策略有性能优势,因为序列通常在数据库层面创建和管理,...

    Hibernate的主键生成方式

    在使用Hibernate进行对象关系映射时,一个重要的概念就是如何为持久化实体类中的主键字段生成唯一标识符。主键是表中的一列或一组列,其值是唯一的,用于唯一地标识表中的每一行数据。在Hibernate框架中,提供了多种...

    JAVA数据类型与Hibernate的类型映射

    此外,自定义对象的映射是Hibernate映射中的一个重要部分。通过在实体类上使用@Entity注解,并使用@Id注解指定主键字段,可以将一个Java类映射到数据库的一张表。字段则通过@Column注解来指定列名和属性,如长度、...

    hibernate 双向一对一基于主键的关联映射

    在Java持久化框架Hibernate中,双向一对一(OneToOne)基于主键的关联映射是一种常见的对象关系映射(ORM)技术。这种映射方式允许两个实体类之间建立一对一的关联,且关联是通过主键来实现的。接下来,我们将深入...

    hibernate一对一主键关联映射(双项关联)

    如果不设置,Hibernate会默认创建一个外键,此时需要在两个实体中都设置`@OneToOne`。 2. **级联操作**:`CascadeType.ALL`允许级联操作,如保存、删除等,这意味着当保存一个实体时,其关联的实体也会被保存或删除...

Global site tag (gtag.js) - Google Analytics