[英]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%清楚,但是我猜您有四個截然不同的多對多關系:
如果真是這樣,那么您的猜測是正確的。 實現它的最佳方法是擁有四個單獨的多對多關系。 這意味着您將有四個聯接表(每個關系一個,每個關系有兩列;該關系中的一個外鍵用於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.