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

关于Hibernate一对一的关联问题

阅读更多
hibernate的一对一关联,要实现的需求是有两张表.User和Employee,其中他们是一一对应的关系,其中User表的结构为
ID           主键,业务无关
USERID       用户编号
USERNAME     用户类型
EMPLOYEEID   关联Employee表中的员工编号EMPID

Employee的结构是
ID           主键,业务无关
EMPID        员工编号
EMPNAME      员工姓名

我的做法是
配置文件:
user.hbm.xml
<many-to-one name="employee" class="Employee" cascade="none"
outer-join="auto" column="EMPLOYEEID" property-ref="empid" unique="true"/>

employee.hbm.xml
<one-to-one name="user" class="User" cascade="all" property-ref="employee"/>

这样关联,根据employee.getUser()取不到值,在保存的时候,根据user.setEmployee()保存成功的,但现在就是取不到值,会是甚么原因呢?
分享到:
评论
6 楼 onemoretry 2007-05-09  
user.hbm.xml,试试去掉两个属性
<many-to-one name="employee" class="Employee" cascade="none"
outer-join="auto" column="EMPLOYEEID"/>
5 楼 stonecai 2007-05-09  
Qieqie 写道
你试一下这个配置,看如何

user.hbm.xml
<one-to-one name="employee" class="Employee" column="EMPLOYEEID" property-ref="empid" />


employee.hbm.xml
<many-to-one name="user" class="User" unique="true" cascade="all" property-ref="employee" />



试过了,没有column属性
4 楼 stonecai 2007-05-09  
<one-to-one>是没有column的吧?记得没有的
3 楼 Qieqie 2007-05-09  
你试一下这个配置,看如何

user.hbm.xml
<one-to-one name="employee" class="Employee" column="EMPLOYEEID" property-ref="empid" />


employee.hbm.xml
<many-to-one name="user" class="User" unique="true" cascade="all" property-ref="employee" />


---
以上配置错误,别试了
2 楼 stonecai 2007-05-09  
表不是我设计的,上面设计的。改不了~
至于那两张表是我虚构的,真实的属性很多,但他们的关系就是所表达的那两张表的关系
属性关联,不是主键-外键关联。
全部表的主键都是与业务无关的,不过多对多,一对多等都没问题,就是一对一出现能存不能读的问题。
如果实在没办法,干脆用一对多来处理算了~~呵呵
1 楼 Qieqie 2007-05-09  

真是自找麻烦,我看你重新设计表吧:

要么合成两张表为一张,要么请通过主键-外键关联,不要使用属性关联-外键关联

使用property-ref有什么好?那是针对遗留系统的。

相关推荐

    Hibernate双向一对一关联映射(注解版)

    本主题聚焦于“Hibernate双向一对一关联映射”的注解实现,这是一种高级的数据库设计模式,用于处理两个实体之间一对一的关系。 在Hibernate中,一对一关联映射分为单向和双向。单向一对一映射通常涉及一个实体持有...

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

    - **唯一性约束**:在数据库层面,为了确保一对一关联,通常需要添加唯一性约束。例如,`IdCard`表的`person_id`列应具有唯一性约束。 以上就是关于Hibernate中一对一主键关联映射(单项关联)的详细解释。通过这种...

    hibernate一对一关联关系

    以上就是关于Hibernate一对一关联关系的详细解释,通过理解和掌握这些知识点,你可以更有效地在Java项目中设计和实现数据库模型,提高代码的可读性和维护性。希望这份资源能帮助你更好地理解和运用Hibernate框架。

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

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射方式之一,尤其在处理两个实体之间存在唯一对应关系时非常有用。本篇将重点讲解如何实现一对一主键关联映射的单向关联,并通过一个...

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

    标题"Hibernate一对一主键关联映射(双向关联)"中的"主键关联"指的是两个实体通过共享相同的主键来建立关联。"双向关联"则意味着在两个实体类中,都可以直接访问到对方的实例,即在实体A中有一个对实体B的引用,...

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

    一、Hibernate一对一关联类型 一对一关联在现实世界中很常见,例如一个人只有一个身份证,一个身份证也只能属于一个人。在数据库设计中,这种关系通常通过主键和外键的方式实现,其中一方的主键作为另一方的外键,...

    hibernate多对一单向关联关系实现源码

    首先,我们要理解Hibernate是如何处理多对一关联的。在Hibernate中,我们通过在实体类中添加注解或配置XML文件来定义这种关系。对于单向多对一关联,通常是在多方(拥有多个实体)的类中添加一个对单方(拥有单一...

    Hibernate 一对一关联查询.docx

    根据描述,我们可以理解以下几点关于外键的一对一关联: - 在拥有外键的一方(如User),可以自由地维护关联关系,包括建立、修改和解除。 - 可以随意删除拥有外键的对象,如果在映射文件中设置了`cascade="delete...

    hibernate使用主键关联的一对一关系

    在Java的持久化框架Hibernate中,一对一(OneToOne)关系是一种常见的对象关系映射(ORM)配置,用于表示两个实体类之间的一种唯一关联。在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来...

    hibernate多对一关联demo

    在上述博客文章中,作者分享了一个关于Hibernate多对一关联的实例。在数据库设计中,多对一关联意味着一个实体(如部门)可以与多个其他实体(如员工)相关联,而每个其他实体只能对应到这个单一的实体。例如,在...

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

    虽然一对一关联提供了便利,但过度使用可能会增加数据库查询复杂性,影响性能。因此,合理设计数据模型和关联关系,结合缓存策略,才能实现高性能的持久化操作。 总结来说,Hibernate的一对一主键关联映射,尤其是...

    hibernate一对一之唯一外键关联(双向关联)

    - 虽然一对一关联提供了便利,但过多的一对一关联可能会影响性能,因为每次查询可能涉及多个表,增加数据库访问的复杂性。因此,应谨慎设计实体间的关系。 8. **实例应用** - 在实际项目中,一对一关联常用于用户...

    Hibernate一对一唯一外键关联映射(单向关联)

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的...以上就是关于Hibernate一对一唯一外键关联映射(单向关联)的详细说明。通过这种方式,我们可以轻松地在Java应用中处理数据库的一对一关系。

    hibernate外键实现一对一单向关联关系源码

    **一对一关联关系**在数据库设计中表示两个表之间存在唯一的对应关系,例如,一个人可能只有一个护照,或者一个员工只有一个职位。在Hibernate中,这种关系可以通过外键(Foreign Key)在一方或双方实体中实现。 **...

    hibernate外键实现一对一双向关联关系源码

    在实际应用中,确保在两个实体类间的一对一关联正确无误非常重要。在创建和更新关联时,应避免循环引用和数据不一致的问题。在保存或更新对象时,需确保在双方都进行了正确的设置。 8. **性能考虑**: 一对一双向...

    Hibernate一对一,一对多,多对多实例

    一对一关联通常出现在两个实体之间存在唯一对应关系的情况,例如一个人只有一个身份证。在Hibernate中,可以通过在实体类的属性上使用`@OneToOne`注解来定义这种关系。此外,还需要通过`@PrimaryKeyJoinColumn`或`@...

    hibernate一对一主键关联代码实现

    首先,我们需要理解一对一关联的含义:在数据库中,如果一个表的记录只能与另一个表的唯一一条记录对应,这就构成了主键关联的一对一关系。例如,一个人可能只有一个护照,那么“人”表和“护照”表之间的关系就是一...

    Hibernate 一对一外键单向关联

    在Hibernate中,一对一(One-to-One)映射是一种常见的关联关系,它表示两个实体之间存在一对一的对应关系。本篇文章将深入探讨Hibernate中的一对一外键单向关联。 首先,一对一外键关联指的是一个实体通过外键直接...

    hibernate主键实现一对一单向关联关系源码

    首先,我们需要理解一对一关联关系的基本概念。在数据库中,一对一关系意味着两个表中的每一条记录都对应另一表中的唯一一条记录。在Hibernate中,这种关系可以通过共享主键或外键来实现。由于题目中提到的是“主键...

    Hibernate ORM - 一对一连接表关联关系

    10. **性能优化**: 在处理一对一关联时,需要注意避免N+1查询问题,通过合理使用JOIN查询或批处理可以提升性能。 **文件名称分析** "HibernateORM"这个文件名可能是包含示例代码、配置文件或教程文档的压缩包,...

Global site tag (gtag.js) - Google Analytics