我试图找出在休眠中完成关系的最佳方法。我有一个客户对象。每个客户都有一个技术联系人、一个计费联系人和一个销售联系人。每种类型的联系人都具有完全相同的数据结构(电话、电子邮件、地址等)。
我的第一个想法是创建一个Contact 表,然后在Customer 表中有三列——sales_contact、billing_contact、technical_contact。这将在相同的两个表之间建立三个不同的外键一对一关系。但是,我发现这在 Hibernate 中很难映射,至少使用注释。
另一个想法是使其成为多对多关系,并在映射表中有一个类型标志。因此,任何客户都可以有多个联系人(尽管在这种情况下不超过三个),并且任何联系人都可以属于多个客户。不过,我也不知道如何映射那个。会是地图表上的类型字段吗?这个属性会出现在 Contact java 模型对象上吗?Customer 模型是否有一组 Contact 对象。还是三个不同的单独的联系人对象?
所以我真的在这里寻找两件事 - 1.在数据库中实现这一点的最佳方法是什么,以及 2.如何使用注释制作 Hibernate 映射?