数据库中有没有外键关系与Hibernate是没有影响的,在我们的项目中通常在设计的时候都为表建立关联,然后通过工具生成Hibernate的pojo和hbm,这时生成的hbm自然会根据数据库一致存在对象关联,而在最后我们为了其它操作的方便,如导入等等。都会将数据库级的关系全部取消,将关联全部放在Hibernate上控制。

解决方案 »

  1.   

    再请问一下:
    如果一个pojo(Organization)中配置
    <set name="deptSet" inverse="true">
                <key column="ORG_ID"/>
                <one-to-many class="Dept"/>
    </set>
    另一个pojo(Dept)中是不是必须配置
    <many-to-one name="organization" column="ORG_ID" class="Organization"  not-null="true" />能否只配置set这边?
      

  2.   

    我记得,可以只设置单向的one-to-many呀。只不过在保存的时候,会比较麻烦,insert into dep(depid ,.......) values("111",.....);insert into student(id,depid ,.......)values("张三",null,.....);update student set depid=111 where id="张三";-----------------------------
    这个例子,dep-to-student   是一个one-to-many的例子。是单向一对多。因为在保存的时候,dep的保存根本就没有问题,而student根本就不知道它的depid到底是多少,所以,先插入一条depid为空的记录,然后利用update对其进行更改。
    这个时候,数据库student表的depid字段,必须可以为空。或者,在映射文件中,不映射depid这个属性。《深入浅出Hibernate》书中,对这个问题讲的比较清楚,
    我不知道自己说的对不,共同学习·