【发布时间】:2013-02-05 12:48:37
【问题描述】:
在我正在编写的 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 对象中。这似乎与我现有的Organization 冲突:两个Java 类的联系使用。例如,如果我有一个 1:1 的 Offer,如果我把它放到 Contact 类中,我是可以选择使用其中之一还是强制同时使用两者?
既然 Offer 是另一种关系,我是否需要编写 Contact 的数据传输对象版本以用于 Offer 关系?
谢谢, 杰罗姆。
【问题讨论】:
标签: spring hibernate many-to-one hibernate-onetomany