簡體   English   中英

使用Hibernate將許多表連接到一個[多對多和額外的列]

[英]Join many tables to one [Many-to-many and with extra columns] using Hibernate

您能用冬眠和注釋來幫助我嗎,我想將4個表(prof,salle,groupe,cours)與另一個表(creneau)連接起來。 其中的4個與第5個表具有多對多關系。

我用谷歌搜索,我知道具有多對多關系(我發現只有2個表的情況)將創建一個鏈接表來連接它們,它包含它們的鍵(在我的情況下,還將有額外的列)

這是我找到的最佳鏈接Join Tutorial 我發現更適合該問題的解決方案是針對4個表(prof-creneau)/(salle / creneau)....並使用相同的鏈接表重復該教程。

這是實現它的最佳方法(對我來說似乎是重復的)?

經典@ManyToMany關系是指兩個實體之間的關系。

如果要建立多對多表關系,則需要額外的列才能連接表。

這是有用的示例:

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

正如我在對您的答案的評論中提到的那樣,我不是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 = ...;
}

它似乎是重復的,但是您在這里確實有四個獨立的關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM