浏览 4916 次
锁定老帖子 主题:关于Hibernate一对一的关联问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-09
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()保存成功的,但现在就是取不到值,会是甚么原因呢? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-09
真是自找麻烦,我看你重新设计表吧: 要么合成两张表为一张,要么请通过主键-外键关联,不要使用属性关联-外键关联 使用property-ref有什么好?那是针对遗留系统的。 |
|
返回顶楼 | |
发表时间:2007-05-09
表不是我设计的,上面设计的。改不了~
至于那两张表是我虚构的,真实的属性很多,但他们的关系就是所表达的那两张表的关系 属性关联,不是主键-外键关联。 全部表的主键都是与业务无关的,不过多对多,一对多等都没问题,就是一对一出现能存不能读的问题。 如果实在没办法,干脆用一对多来处理算了~~呵呵 |
|
返回顶楼 | |
发表时间: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" /> --- 以上配置错误,别试了 |
|
返回顶楼 | |
发表时间:2007-05-09
<one-to-one>是没有column的吧?记得没有的
|
|
返回顶楼 | |
发表时间: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属性 |
|
返回顶楼 | |
发表时间:2007-05-09
user.hbm.xml,试试去掉两个属性
<many-to-one name="employee" class="Employee" cascade="none" outer-join="auto" column="EMPLOYEEID"/> |
|
返回顶楼 | |