diff --git a/pom.xml b/pom.xml index d693ad2..d292734 100755 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.5.6 + 3.5.7 nl.connected-it @@ -50,10 +50,7 @@ h2 runtime - - org.springframework.boot - spring-boot-starter-security - + org.springframework.boot spring-boot-starter-web diff --git a/src/main/java/nl/connectedit/swiss/domain/entity/Event.java b/src/main/java/nl/connectedit/swiss/domain/entity/Event.java index 34bfeb4..32b5225 100644 --- a/src/main/java/nl/connectedit/swiss/domain/entity/Event.java +++ b/src/main/java/nl/connectedit/swiss/domain/entity/Event.java @@ -26,7 +26,7 @@ public class Event extends AbstractEntity { @ManyToOne private Tournament tournament; - @OneToMany(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "event", cascade = CascadeType.MERGE, fetch = FetchType.LAZY) private List registrations; @Enumerated(EnumType.STRING) diff --git a/src/main/java/nl/connectedit/swiss/domain/entity/Match.java b/src/main/java/nl/connectedit/swiss/domain/entity/Match.java index 9c651a7..37ddf3b 100644 --- a/src/main/java/nl/connectedit/swiss/domain/entity/Match.java +++ b/src/main/java/nl/connectedit/swiss/domain/entity/Match.java @@ -30,9 +30,11 @@ public class Match extends AbstractEntity { private Round round; @ManyToOne + @JoinColumn(name = "team1_id") private Team team1; @ManyToOne + @JoinColumn(name = "team2_id") private Team team2; private Boolean played; diff --git a/src/main/java/nl/connectedit/swiss/domain/entity/Player.java b/src/main/java/nl/connectedit/swiss/domain/entity/Player.java index 4c2fca9..8d4f040 100644 --- a/src/main/java/nl/connectedit/swiss/domain/entity/Player.java +++ b/src/main/java/nl/connectedit/swiss/domain/entity/Player.java @@ -58,11 +58,11 @@ public class Player extends AbstractEntity { @Enumerated(EnumType.STRING) private PlayerStrength strength; - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) - private List registrations;// = new ArrayList<>(); + @OneToMany(mappedBy = "player", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private List registrations; - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) - private List partnerRegistrations;// = new ArrayList<>(); + @OneToMany(mappedBy = "partner", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private List partnerRegistrations; public String getFullName() { return hasLength(middleName) ? diff --git a/src/main/java/nl/connectedit/swiss/domain/entity/Registration.java b/src/main/java/nl/connectedit/swiss/domain/entity/Registration.java index 9309895..8a67e0e 100644 --- a/src/main/java/nl/connectedit/swiss/domain/entity/Registration.java +++ b/src/main/java/nl/connectedit/swiss/domain/entity/Registration.java @@ -20,8 +20,8 @@ public class Registration extends AbstractEntity { @ManyToOne private Event event; - @ManyToOne - private Tournament tournament; +// @ManyToOne +// private Tournament tournament; @ManyToOne @JoinColumn(name = "player_id") diff --git a/src/main/java/nl/connectedit/swiss/domain/entity/Round.java b/src/main/java/nl/connectedit/swiss/domain/entity/Round.java index b47a167..f10a3c3 100644 --- a/src/main/java/nl/connectedit/swiss/domain/entity/Round.java +++ b/src/main/java/nl/connectedit/swiss/domain/entity/Round.java @@ -27,7 +27,7 @@ public class Round extends AbstractEntity { private Status status; - @OneToMany(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "round", cascade = CascadeType.MERGE, fetch = FetchType.LAZY) @OrderBy("id") private List matches; diff --git a/src/main/java/nl/connectedit/swiss/domain/entity/Tournament.java b/src/main/java/nl/connectedit/swiss/domain/entity/Tournament.java index 8e695f3..528e076 100644 --- a/src/main/java/nl/connectedit/swiss/domain/entity/Tournament.java +++ b/src/main/java/nl/connectedit/swiss/domain/entity/Tournament.java @@ -35,7 +35,7 @@ public class Tournament extends AbstractEntity { @Enumerated(EnumType.STRING) private TournamentStatus status; - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @OneToMany(mappedBy = "tournament", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List events; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) diff --git a/src/main/java/nl/connectedit/swiss/mapper/TournamentMapper.java b/src/main/java/nl/connectedit/swiss/mapper/TournamentMapper.java index 9e34731..2fb50a2 100644 --- a/src/main/java/nl/connectedit/swiss/mapper/TournamentMapper.java +++ b/src/main/java/nl/connectedit/swiss/mapper/TournamentMapper.java @@ -94,13 +94,15 @@ public class TournamentMapper implements DtoMapper, E var playersCounting = new ArrayList(); for (var event : tournament.getEvents()) { - for (var group : event.getGroups()) { - for (var round : group.getRounds()) { - for (var match : round.getMatches()) { - if (match.getStatus() == Status.IN_PROGRESS && match.getCounter() != null) { - var counter = getTournamentPlayerFromPlayerId(tournament, match.getCounter().getId()); - if (counter != null) { - playersCounting.add(counter.getId()); + if (event.getGroups() != null) { + for (var group : event.getGroups()) { + for (var round : group.getRounds()) { + for (var match : round.getMatches()) { + if (match.getStatus() == Status.IN_PROGRESS && match.getCounter() != null) { + var counter = getTournamentPlayerFromPlayerId(tournament, match.getCounter().getId()); + if (counter != null) { + playersCounting.add(counter.getId()); + } } } } @@ -114,11 +116,13 @@ public class TournamentMapper implements DtoMapper, E var playersPlaying = new ArrayList(); for (var event : tournament.getEvents()) { - for (var group : event.getGroups()) { - for (var round : group.getRounds()) { - for (var match : round.getMatches()) { - if (match.getStatus() == Status.IN_PROGRESS) { - playersPlaying.addAll(getPlayersInMatch(tournament, match)); + if (event.getGroups() != null) { + for (var group : event.getGroups()) { + for (var round : group.getRounds()) { + for (var match : round.getMatches()) { + if (match.getStatus() == Status.IN_PROGRESS) { + playersPlaying.addAll(getPlayersInMatch(tournament, match)); + } } } } @@ -129,6 +133,10 @@ public class TournamentMapper implements DtoMapper, E } private List getPlayersAvailable(Tournament tournament) { + if (tournament.getTournamentPlayers() == null) { + return List.of(); + } + var playersAvailable = tournament.getTournamentPlayers() .stream() .map(TournamentPlayer::getId) diff --git a/src/main/java/nl/connectedit/swiss/service/RegistrationService.java b/src/main/java/nl/connectedit/swiss/service/RegistrationService.java index a7aed17..761eeb7 100644 --- a/src/main/java/nl/connectedit/swiss/service/RegistrationService.java +++ b/src/main/java/nl/connectedit/swiss/service/RegistrationService.java @@ -27,7 +27,7 @@ public class RegistrationService { .findAny(); if (optionalExistingPlayerRegistration.isEmpty()) { // no previous registration for this event var newRegistration = new Registration(); - newRegistration.setTournament(tournament); +// newRegistration.setTournament(tournament); newRegistration.setEvent(event); newRegistration.setPlayer(player); if (eventRegistration.getPartner() != null) {