我遇到的情况是1个表有2列,它们之间有很多对多的关系。让我举例说明 我有一个名为
的表StudentCC
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>();
请指教。提前谢谢。
答案 0 :(得分:0)
我相信你不能拥有JointTable(姓名=&#34; StudentCC&#34;),因为很多人不能分组到StudentCC或coachingCenterID,你需要一个新表来保持学生和教练中心之间的多对多,例如StudentCoachingCenter。
在Student课程中,您需要具有CoachingCenters的集合
@ManyToMany
@JoinTable(name="StudentCoachingCenter",
joinColumns = {@JoinColumn(name="StudentCC")}, inverseJoinColumns ={@JoinColumn(name="coachingCenterID")})
private Set<CoachingCenter> coachingCenters;