求助:Hibernater中双向one-to-one关系的插入问题
star6 2005-07-08 11:13:40 我的简历表(resume)和简历基本信息表(resumebasicinfo)是一对一的关系,resume表中的主键为resumeid,resumebasicinfo中的主键用resume中的主键resumeid。但是在插入时出现"违反完整约束条件 (CYBERHR.RESUMEBASICIN_FK51110442457883) - 未找到父项关键字"错误,请高手指教。
========================================================
resume.hbm.xml:
<class
name="com.cyber.cyberhr.model.Resume"
table="RESUME"
schema="CYBERHR"
dynamic-update="true"
>
<id
name="resumeid"
type="java.lang.Long"
column="RESUMEID"
>
<generator class="sequence">
<param name="sequence">seq_resumeid</param>
</generator>
</id>
<property
name="other"
type="java.lang.String"
column="OTHER"
length="2000"
/>
<!-- bi-directional one-to-one association to Resumebasicinfo -->
<one-to-one
name="resumebasicinfo"
class="com.cyber.cyberhr.model.Resumebasicinfo"
cascade="all"
/>
</class>
=================================================================
resumebasicinfo.hbm.xml:
<class
name="com.cyber.cyberhr.model.Resumebasicinfo"
table="RESUMEBASICINFO"
schema="CYBERHR"
dynamic-update="true"
>
<id
name="resumeid"
type="java.lang.Long"
column="RESUMEID"
>
<generator class="foreign">
<param name="property">resume</param>
</generator>
</id>
<property
name="namepart1"
type="java.lang.String"
column="NAMEPART1"
length="10"
/>
......
<!-- bi-directional one-to-one association to Resume -->
<one-to-one
name="resume"
class="com.cyber.cyberhr.model.Resume"
constrained="true"
/>
</class>
=============================================================
我的代码:
Resume resume = new Resume();
resume.setOther(otherInfo);
Resumebasicinfo basicinfo = new Resumebasicinfo();
basicinfo.setNamepart1(namePart1);
Session session = null;
Transaction tx = null;
try{
session = HibernateUtil.getSession();
tx = session.beginTransaction();
basicinfo.setResume(resume);
resume.setResumebasicinfo(basicinfo);
Long generatedID = (Long)session.save(resume);
session.flush();
tx.commit();
}catch(Exception ex){
log.error(ex.getMessage());
}
==============================================================