0

你能帮我吗,使用休眠和注释我想将 4 个表(prof、salle、groupe、cours)与另一个表(creneau)连接起来。其中4个与第5个表有多对多的关系。

我用谷歌搜索,我知道多对多关系(我发现只有 2 个表的情况)会创建一个链接表来加入它们,它包含它们的键(在我的情况下也会有额外的列)

这是我找到的最好的链接加入教程。我发现更适合该问题的解决方案是针对 4 个表 (prof-creneau)/(salle/creneau) .... 并使用相同的链接表重复该教程。

这是实现它的最佳方法(对我来说似乎是重复的)?

4

2 回答 2

0

经典的@ManyToMany 关系是指两个实体之间的关系。

如果您想要多对多表关系,则需要额外的列连接表。

这是一个有用的例子:

http://www.mkyong.com/hibernate/hibernate-many-to-many-example-join-table-extra-column-annotation/

于 2013-08-13T05:10:56.590 回答
-1

正如我在对您的答案的评论中提到的那样,我不是 100% 清楚,但我猜您有四种不同的多对多关系:

  1. 克雷诺教授
  2. 萨勒克雷诺
  3. 克雷诺集团
  4. 库尔斯克雷诺

如果是这样,那么你的猜测是正确的。实现它的最好方法是建立四个独立的多对多关系。这意味着您将有四个连接表(每个关系一个,每个有两列;一个外键用于 creneau,一个外键用于关系中的另一个表)。

在 Hibernate 中,您将分别指定所有这些映射。

您的 DAO 类可能类似于:

public class Prof {
    private Set<Creneau> creneaus = ...;
}

public class Salle {
    private Set<Creneau> creneaus = ...;
}

public class Groupe {
    private Set<Creneau> creneaus = ...;
}

public class Cours {
    private Set<Creneau> creneaus = ...;
}

public class Creneau {
    private Set<Prof> profs = ...;
    private Set<Salle> salles = ...;
    private Set<Groupe> groupes = ...;
    private Set<Cours> courss = ...;
}

它可能看起来是重复的,但这里确实有四个独立的关系。

于 2013-08-13T03:29:31.797 回答