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

Java 在Hibernate中指定表之间的多个一对多关系,java,mysql,hibernate,Java,Mysql,Hibernate,我有两张桌子:球队和比赛 团队表由以下内容组成[团队ID、团队名称] 比赛表由以下内容组成[比赛ID、主队、客队、结果] 主队和客队是团队表中的外键,因此在团队和比赛表之间定义了两个一对多关系 我知道如何指定两个表之间的单个关系,但如何指定两个表之间的多个关系?这是相同的过程吗 如何在Hibernate中指定这些关系?您可以在团队和比赛之间建立单向映射,如下所示: 在Matches类中: @ManyToOne(optional = false) @JoinColumn(name = "home_

我有两张桌子:球队和比赛

团队表由以下内容组成[团队ID、团队名称] 比赛表由以下内容组成[比赛ID、主队、客队、结果]

主队和客队是团队表中的外键,因此在团队和比赛表之间定义了两个一对多关系

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


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

您可以在团队和比赛之间建立单向映射,如下所示:

在Matches类中:

@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;
如果需要双向关系,可以添加以下内容:

团队课堂:

@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;
@OneToMany(mappedBy=“homeTeam”)
私人设置家庭比赛;
@OneToMany(mappedBy=“awayTeam”)
私人约会;

您可以在团队和比赛之间建立单向映射,如下所示:

在Matches类中:

@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;
如果需要双向关系,可以添加以下内容:

团队课堂:

@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;
@OneToMany(mappedBy=“homeTeam”)
私人设置家庭比赛;
@OneToMany(mappedBy=“awayTeam”)
私人约会;

您的意思是指定“主队”和“客队”是多对一关系?有关多对一映射,请参见Hibernate文档:对,因此指定两个表之间的多个关系与指定单个关系的过程是相同的?当然-您可以设置尽可能多的多对一关系;在这种情况下,比赛中的每个“团队”都是一对一关系。您的意思是指定“主队”和“客队”是多对一关系吗?有关多对一映射,请参见Hibernate文档:对,因此指定两个表之间的多个关系与指定单个关系的过程是相同的?当然-您可以设置尽可能多的多对一关系;在这种情况下,比赛中的每个“团队”都是一对一的关系。