在我正在编写的 Spring/Hibernate/Java/Tomcat 应用程序中,组织与其联系人之间存在 OneToMany 关系。
组织 1:M 联系人(具有外键 org_id)
在组织中,我有这个领域:
@OneToMany(mappedBy="organization")
private List<Contact> contacts;
在联系我有这个领域:
@ManyToOne
@JoinColumn(name="org_id")
private Organization organization;
到目前为止一切正常。现在我添加了一个提议的概念。要约可以由组织提出,并且您与该特定要约的指定联系人交谈。
Offer 具有其组织 (org_id) 和指定联系人 (contact_id) 的外键。
到目前为止,报价看起来像:
@OneToOne
@JoinColumn(...)
private Organization offering_org;
@OneToOne
@JoinColumn(...)
private Contact offering_contact;
我的问题的重点来了。我已经注释了用于组织的联系人类。如果我尝试以通常的 Hibernate 方式持久化 Offer 对象,我需要将 Organization 对象和 Contact 对象的副本存储到 Offer 对象中。这似乎与我现有的组织冲突:两个Java类的联系使用。例如,如果我有一个 1:1 的 Offer,如果我把它放到 Contact 类中,我是可以选择使用其中之一还是强制同时使用两者?
由于Offer是另一个关系,我是否需要编写Contact的数据传输对象版本以用于Offer关系?
谢谢,杰罗姆。