Corrected cascading
All checks were successful
Gitea/swiss-backend/pipeline/head This commit looks good

This commit is contained in:
Michel ten Voorde
2025-10-27 17:22:16 +01:00
parent ce9f10acb9
commit 1df0ebee5c
3 changed files with 21 additions and 22 deletions

View File

@@ -33,12 +33,12 @@ public class Group extends AbstractEntity {
@OrderBy("name") @OrderBy("name")
private List<Round> rounds; private List<Round> rounds;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY)
@JoinTable( @JoinTable(
name = "eventgroup_teams", name = "eventgroup_teams",
joinColumns = @JoinColumn(name = "group_id"), joinColumns = @JoinColumn(name = "group_id"),
inverseJoinColumns = @JoinColumn(name = "teams_id") inverseJoinColumns = @JoinColumn(name = "teams_id")
) )
private List<Team> teams; private List<Team> teams = new ArrayList<>();
} }

View File

@@ -2,6 +2,7 @@ package nl.connectedit.swiss.domain.entity;
import jakarta.annotation.Nullable; import jakarta.annotation.Nullable;
import jakarta.persistence.*; import jakarta.persistence.*;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -19,7 +20,7 @@ public class Team extends AbstractEntity {
private Long id; private Long id;
@ManyToMany(mappedBy = "teams", fetch = FetchType.LAZY) @ManyToMany(mappedBy = "teams", fetch = FetchType.LAZY)
private List<Group> groups; private List<Group> groups = new ArrayList<>();
@ManyToOne @ManyToOne
private Player player1; private Player player1;

View File

@@ -1,9 +1,5 @@
package nl.connectedit.swiss.service; package nl.connectedit.swiss.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JSR310Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
@@ -49,19 +45,8 @@ public class TournamentDivideService {
tournament.setStatus(TournamentStatus.DIVIDED); tournament.setStatus(TournamentStatus.DIVIDED);
// var mapper = new ObjectMapper();
// mapper.registerModule(new JavaTimeModule());
// try {
// log.info(mapper.writeValueAsString(tournament));
// } catch (JsonProcessingException e) {
// throw new RuntimeException(e);
// }
tournamentRepository.save(tournament); tournamentRepository.save(tournament);
// try {
// log.info(mapper.writeValueAsString(tournament));
// } catch (JsonProcessingException e) {
// throw new RuntimeException(e);
// }
return tournament; return tournament;
} }
@@ -111,7 +96,8 @@ public class TournamentDivideService {
group.setTeams(new ArrayList<>()); group.setTeams(new ArrayList<>());
log.info("getGroup: aantal registrations = " + registrations.size()); log.info("getGroup: aantal registrations = " + registrations.size());
for (var registration : registrations) { for (var registration : registrations) {
group.getTeams().add(getTeam(registration, group)); // group.getTeams().add(getTeam(registration, group));
addTeamToGroup(registration, group);
log.info("in getGroup-loop; groepgrootte = " + group.getTeams().size()); log.info("in getGroup-loop; groepgrootte = " + group.getTeams().size());
} }
@@ -119,6 +105,8 @@ public class TournamentDivideService {
} }
private List<Group> getGroups(List<Registration> orgRegistrations, EventType type) { private List<Group> getGroups(List<Registration> orgRegistrations, EventType type) {
var groups = new ArrayList<Group>();
var registrations = new ArrayList<>(orgRegistrations); var registrations = new ArrayList<>(orgRegistrations);
var group1 = new Group(); var group1 = new Group();
@@ -161,18 +149,28 @@ public class TournamentDivideService {
group2.getTeams().removeLast(); group2.getTeams().removeLast();
} }
return List.of(group1, group2); groups.add(group1);
groups.add(group2);
return groups;
} }
private Team getTeam(Registration registration, Group group) { private Team getTeam(Registration registration, Group group) {
var team = new Team(); var team = new Team();
team.setPlayer1(registration.getPlayer()); team.setPlayer1(registration.getPlayer());
team.setPlayer2(registration.getPartner()); team.setPlayer2(registration.getPartner());
team.setGroups(List.of(group)); team.getGroups().add(group);
return team; return team;
} }
private void addTeamToGroup(Registration registration, Group group) {
var team = new Team();
team.setPlayer1(registration.getPlayer());
team.setPlayer2(registration.getPartner());
team.getGroups().add(group);
group.getTeams().add(team);
}
public Tournament clear(Tournament tournament) { public Tournament clear(Tournament tournament) {
for (var event : tournament.getEvents()) { for (var event : tournament.getEvents()) {
event.getGroups().clear(); event.getGroups().clear();