我有一个包含两个模块的多模块应用程序:
现在我的department-management
中有一个实体Department
,在communication-management
模块中,我有MailingGroup
实体。
通信管理还取决于部门管理模块。
现在我想在ManyToOne
和Department
之间建立双向MailingGroup
关系
@Entity
public class Department {
@OneToMany(mappedBy = "department")
List<MailingGroup> mailingGroups;
}
@Entity
public class MailingGroup{
@ManyToOne
@JoinColumn(name = "DEPARTMENT_ID")
Department department;
}
这当然不是上述方式可存档的,但是我可以使用接口来存档这种双向关系吗?我最初的想法是像这样解决它:
public interface MailingGroupProvider {
Department getDepartment()
}
@Entity
public class Department {
@OneToMany(mappedBy = "department")
List<MailingGroupProvider> mailingGroups;
}
@Entity
public class MailingGroup implements MailingGroupProvider {
@ManyToOne
@JoinColumn(name = "DEPARTMENT_ID")
Department department;
}
但这引起了疑问:
答案 0 :(得分:0)
第一种方法是完美的:您需要在两个实体侧都添加一个关系。
departmentid是邮件组Table的外键。在实体双方都应用关系,它将起作用。
@OneToMany Relationship意味着您可以拥有一个部门可以进行多次沟通。
双向表示假设您在通讯管理中执行任何操作(如删除通讯),也会影响部门表。它将删除部门表中匹配的部门编号