【问题标题】:Hibernate: many-to-many relationship table as entityHibernate:多对多关系表作为实体
【发布时间】:2013-11-10 07:22:18
【问题描述】:

问题在标题中:

如何将多对多关系表作为实体?

【问题讨论】:

    标签: hibernate many-to-many hibernate-mapping


    【解决方案1】:

    我想说,你的问题很有道理。看看这个文档部分:Chapter 24. Best Practices。摘录:

    不要使用奇异的关联映射:

    真正多对多关联的实际测试用例很少见。最多 您需要存储在“链接”中的其他信息的时间 表”。在这种情况下,最好使用两个一对多 与中间链接类的关联。事实上,大多数协会 是一对多和多对一。因此,您应该继续 使用任何其他关联样式时要谨慎。

    我们处理这个问题的方法是引入配对对象。所以,如果有一个Employee 有很多Contacts,我们可以有EmployeeContact。这样我们可以收获很多,因为我们可以用更多/新的属性(IsMain、IsActive 等)丰富 EmployeeContact

    在这种情况下,两边的映射就是

    • 员工有one-to-many(设置)EmployeeContacts
    • 联系人有one-to-many(设置)EmployeeContacts
    • EmployeContact 有 many-to-one(关系)员工
    • EmployeContact 有 many-to-one(关系)联系方式

    所以,最后,映射是正常的,但我们可以使用子查询等搜索员工或联系人。

    注意:在这种情况下是合适的,如果配对表有自己的代理键,例如员工联系人 ID。它可以随时添加..例如有身份...

    【讨论】:

      猜你喜欢
      • 2015-10-24
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      相关资源
      最近更新 更多