Hibernate - объединение двух таблиц и дополнительной таблицы - PullRequest
0 голосов
/ 14 октября 2018

У меня есть три таблицы / сущности, которые мне нужно объединить, чтобы получить отношение один ко многим, работающее в 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, но все, что я пробовал до сих пор, провалилось.

...