У меня есть три таблицы / сущности, которые мне нужно объединить, чтобы получить отношение один ко многим, работающее в Hibernate.
Краткий обзор отношений:
- TournamentMatch может иметь много MatchTeams, каждый из которых ссылается на Команду.
- TournamentMatch также имеет много MatchPlayers.Каждый MatchPlayer ссылается на Игрока, принадлежащего Команде.
Прямо сейчас я могу избежать того, что у объекта TournamentMatch есть свойства TournamentTeam и TournamentPlayer:
public class TournamentMatch {
public List<MatchPlayer> getPlayers() {
return players;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "matchTeamId.match")
public Set<MatchTeam> getTeams() {
return teams;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "matchPlayerId.match")
public Set<MatchPlayer> getPlayers() {
return players;
}
}
Однако я бы хотел переместить Сет из TournamentMatch в сущность MatchTeam, потому что каждый игрок принадлежит команде.
public class MatchTeam {
...
@OneToMany(fetch = FetchType.LAZY)
public List<MatchPlayer> getPlayers() {
return players;
}
}
Звучит вполне возможно, я просто не совсем уверенкакая правильная комбинация аннотаций будет для метода getPlayers.Каждый игрок принадлежит к команде, поэтому я могу гипотетически использовать вместе @JoinTable и @JoinColumn, но все, что я пробовал до сих пор, провалилось.