一尘不染

Hibernate:多对多关系表作为实体

hibernate

问题在标题中:

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


阅读 232

收藏
2020-06-20

共1个答案

一尘不染

我会说,你的问题很合理。看看这个文档部分:第24章最佳实践。摘录:

不要使用外来关联映射:

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

我们正在处理的方法是引入配对对象。因此,如果有Employee很多Contacts,我们就可以拥有EmployeeContact。这样,我们可以收获很多,因为我们可以使用更多/新的属性(IsMain,IsActive等)来丰富EmployeeContact。

在这种情况下,双方的映射是

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

因此,最后,映射是正常的,但是我们可以使用子查询等搜索Employee或Contact。

注意:在这种情况下,如果配对表具有自己的替代密钥,例如EmployeeContactId,则是合适的。 它可以随时添加..例如,带有身份…

2020-06-20