【问题标题】:Join three tables into a join table将三个表连接成一个连接表
【发布时间】:2016-12-20 06:53:58
【问题描述】:

我有三个实体之间存在多对多关系 UserProjectTask。我想将三个表连接成一个表collaborator,其中只包含三个表的ID。

但我不明白如何使用@JoinTable 加入他们以及如何管理级联类型。

任何帮助将不胜感激。谢谢 P.S:如果有任何其他想法欢迎。

【问题讨论】:

  • 你想加入或创建一个名为collaborator的表吗?
  • 根据你的解释,我理解一个用户可以有多个项目,一个项目也可以有多个用户。项目和任务之间也是如此。但是,最终,用户是通过项目链接到任务的,不是吗?我认为在您的设计中缺少其他中间表。如果您希望它用于纯粹的维护问题,我建议您实现一个 DB 视图,这将避免您一次又一次地编写连接查询。
  • @ZaidMirza,collaborator 是连接表的名称。
  • @XtremeBiker,那么我将在UserProject 和单独的ProjectTask 之间建立 ManyToMany 关系?您能否详细解释一下该数据库视图,因为我看不到如何在代码中实现它。
  • 看下面的答案,我同意

标签: sql database spring hibernate jointable


【解决方案1】:

您可以从动态临时表中选择

select * from (
    select user.id, Project.id, Task.id
    inner join Project on user.join_key = Project.join_key
    inner join  Task  on task.join_key = = Project.join_key
) collaborator

【讨论】:

  • 对我来说很简单。谢谢
猜你喜欢
  • 1970-01-01
  • 2014-10-16
  • 2018-11-06
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多