簡體   English   中英

是否可以在Hibernate中映射表的兩列而不是兩個表

[英]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.

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