gpt4 book ai didi

java - 具有依赖倒置的多对多关系

转载 作者:行者123 更新时间:2023-12-02 05:16:23 25 4
gpt4 key购买 nike

我有一个包含两个模块的多模块应用程序:

  • 部门管理
  • 沟通管理

现在在我的部门管理中,我有一个实体部门,在通信管理模块中,我有MailingGroup > 实体。

沟通管理也依赖于部门管理模块。现在我想在 DepartmentMailingGroup

之间建立双向 ManyToOne 关系
@Entity
public class Department {

@OneToMany(mappedBy = "department")
List<MailingGroup> mailingGroups;
}


@Entity
public class MailingGroup{

@ManyToOne
@JoinColumn(name = "DEPARTMENT_ID")
Department department;
}

当然,这不能按照上面的方式存档,但是我可以使用接口(interface)存档这种双向关系吗?我最初的想法是这样解决:

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;
}

但这引发了一些问题:

  • 在这种情况下这是首选解决方案吗?
  • 我的接口(interface)应该提供哪些方法才能被 JPA 视为实体?
  • 这可能是我想做的事情吗?

最佳答案

第一种方法是完美的:您需要在实体双方都添加关系。

departmentid 是邮件组表的外键。在实体双方应用关系,它将起作用。

@OneToMany 关系意味着您可以拥有一个部门可以进行多个通信。

双向意味着假设如果您在通信管理中执行任何操作(例如删除通信),它也会影响部门表。它将删除部门表中匹配的 Departmentid

关于java - 具有依赖倒置的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56290061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com