Cześć.
Mam trzy encje:
public class Game {
@Id
private int matchID;
@JoinColumn(name = "Competition")
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
private Competition competition;
private String dateMatch;
private String startTime;
private String statusMatch;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
private Team homeTeam;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
private Team awayTeam;
private String winner;
@OneToMany(mappedBy = "matchID")
private Set<UserBets> listBets;
@Column(nullable = false, columnDefinition = "TINYINT(1)")
private boolean verifiedStatus;
}
public class Competition {
@Id
private int competitionID;
private String competitionName;
@OneToMany(mappedBy = "competition", fetch = FetchType.LAZY)
private Set<Game> games = new HashSet<>();
}
public class Team {
@Id
private int teamId;
private String teamName;
}
W swoim DTO chciałem aby gameDto posiadało dokładną nazwę zespołu, niestety powoduje to u mnie, że na 4 rezultaty mam 1 zapytanie do game, 1 do competition, 8 do Team.
Jak to rozwiązać ?
Ustawić w w GameDto ID drużyny zamiast nazwy ? Ustawić nazwę zamiast ID w encji ? Które rozwiązanie jest lepsze ? A może popełniam jakiś błąd już na wstępie.