[英]Is it possible to map two columns of table instead of two tables in Hibernate
我遇到的情況是1個表有2列,它們之間有多對多關系。 讓我舉例說明一下,我有一個名為
學生CC
StudentId | CoachingCenterId
1 C1
1 C2
2 C1
2 C2
現在,這是1個表的列之間的manyToManyRelation。 我搜索了互聯網,但沒有找到與此相關的任何內容。每個建議至少都針對兩張桌子。 我了解的是,它可以在ManyToMany以及OneToMany和ManyToOne關系映射中完成。 但是不知道如何。
我試圖建立一個ManyToMany關系:請提出是否正確。 如果我必須使用這種或2個OneToMany和ManyToOne關系方法。
@ManyToMany(MappedBy="AnyThing" cascade=CascadeType.ALL)
@JoinTable(name="StudentCC" JoinColumns={@JoinColumn(name="StudentId")},
inverseJoinColumns{@JoinColumn(name="CoachingCenterId")})
Private Set<StudentCC> rel = new HashSet<StudentCC>();
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="StudentCC" JoinColumns=@JoinColumn(name="CoachingCenterId")},
inverseJoinColumns{@JoinColumn(name="StudentId")})
Private Set<StudentCC> rel = new HashSet<StudentCC>();
請指教 。 提前致謝。
我相信您不能擁有JointTable(name =“ StudentCC”),因為無法將多對多分組到StudentCC或coachingCenterID,您將需要一個新表來容納Student和coachingCenter之間的多對多內容,例如StudentCoachingCenter。
在“學生”課程中,您需要使用CoachingCenters進行設置
@ManyToMany
@JoinTable(name="StudentCoachingCenter",
joinColumns = {@JoinColumn(name="StudentCC")}, inverseJoinColumns ={@JoinColumn(name="coachingCenterID")})
private Set<CoachingCenter> coachingCenters;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.