在Hibernate中指定表之间的多个一对多关系

时间:2015-01-29 21:08:32

标签: java mysql hibernate

我有两个表:团队和比赛

Teams表格如下[团队ID,团队名称] 匹配表格如下[匹配ID,主队,客队,结果]

Home Team和Away Team是Teams表中的外键,因此在Team和Matches表之间定义了两个一对多关系。

我知道如何指定两个表之间的单个关系但是如何指定两个表之间的多个关系?是同一个过程吗?

如何在Hibernate中指定这些关系?

1 个答案:

答案 0 :(得分:2)

您可以在团队和匹配之间进行单向映射,如下所示:

在匹配类:

@ManyToOne(optional = false)
@JoinColumn(name = "home_team_id", referencedColumnName = "team_id")
private Team homeTeam;

@ManyToOne(optional = false)
@JoinColumn(name = "away_team_id", referencedColumnName = "team_id")
private Team awayTeam;

如果您需要双向关系,可以添加以下内容:

在团队课程中

@OneToMany(mappedBy = "homeTeam")
private Set<Matches> homeMatches;

@OneToMany(mappedBy = "awayTeam")
private Set<Matches> awayMatches;