Hibernate一对多映射外键问题

时间:2012-07-22 18:53:00

标签: hibernate hibernate-mapping

我是hibernate的新手。请帮助我理解这一点。

我有Department和Employee对象。部门正在使用级联类型SAVE进行员工集合。我已经创建了部门对象和员工对象。分别表示dept1和emp1。当我保存dept1对象(具有emp1)时,它将在部门和员工表中保存dept1和emp1外键。

除非我在emp1上设置department(dept1),否则它不会保存外键。我为什么要手动设置呢?不能冬眠吗?有没有理由这样做?

1 个答案:

答案 0 :(得分:4)

因为这就是Hibernate文档和JPA规范告诉你的方法。在双向关联中,存在所有者方和反方。所有者方是没有mappedBy属性的方。反面是具有mappedBy属性的那个。

在双向OneToMany中,所有者方总是多方(具有装饰键的方)。

Hibernate / JPA只关心所有者方面。如果未初始化所有者方,则认为该关联不存在。除非你真的知道自己在做什么,否则一个好的经验法则是初始化关联的两面,使你的实体图形连贯。