请问:
ORACLE数据库里有一张表keywords,主键为ID,外键为PID,
一条数据里包含ID,keyword,PID,ismainkey(布尔型)
每个ismainkey为真的keyword 对应一组(set)PID=ID 且ismainkey为假的keyword
用的hibernate做的映射,如下
<many-to-one name="keywords" class="ss" fetch="select" cascade="all">
            <column name="PID" precision="10" scale="0" />
</many-to-one> 
<set name="keywordses" lazy="false" inverse="false" cascade="all">
            <key>
                <column name="PID" precision="10" scale="0" />
            </key>
            <one-to-many class="ss"/>
 </set>     
现在的问题是 保存一个keywords对象后,其他都有值,但是PID为NULL

解决方案 »

  1.   

    根据题目,外键不能为null,如果是遗留问题,那就修改外键为null 的值,使之符合条件
      

  2.   

    这个是J2EE的事情,如果非要到ORACLE来问,我就推荐你用个触发器去更新。不过最好用hibernate来控制,不过很久没弄hibernate了,都忘了那些特性了,楼主最后去Java区域去看看。
      

  3.   

    谢谢 我是到J2EE问了下 
    只是还没人回
      

  4.   

    外键为null会出错吧.外键应该为引用表的主键,而主键不可能是null.
      

  5.   

    联机文档关于primary key 和foreign key 的表述
    A primary key is a column or combination of columns whose values uniquely identify each row in a table. A foreign key is a column or combination of columns whose values match the primary key in some other table. 
      

  6.   

    谢谢 大家
    我的意思 是在一张表里实现级联
    比如说表里的数据为
    ID PID WORD
    2   1   M
    3   1   MM
    1   NULL O
    ID=1 的数据 就级联着PID=1 的数据