【问题标题】:Hibernate one to many mapping foreign key issue休眠一对多映射外键问题
【发布时间】:2012-07-22 18:52:59
【问题描述】:

我是休眠新手。请帮助我理解这一点。

我有 Department 和 Employee 对象。部门有级联类型 SAVE 的员工集合。我已经创建了部门对象和员工对象。让我们分别说 dept1 和 emp1。当我保存 dept1 对象(具有 emp1)时,它将 dept1 和 emp1 保存在部门和员工表中出外键。

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

【问题讨论】:

  • 那么Hibernate应该如何猜测你的代码呢?如果你有两种关系(多对一和一对多),最好同时设置这两种关系。

标签: hibernate hibernate-mapping


【解决方案1】:

因为 Hibernate 文档和 JPA 规范告诉您这样做。在双向关联中,有所有者方和反方。所有者一方是没有mappedBy 属性的一方。反面是具有mappedBy 属性的那一面。

在双向 OneToMany 中,所有者方始终是多方(拥有外键的一方)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2011-07-26
    • 2014-05-12
    相关资源
    最近更新 更多