У меня есть приложение с интерфейсом Angular и сервером Spring. Здесь речь идет о двух классах (backend):
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "tournament_games")
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class TournamentGame {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "code", foreignKey = @ForeignKey(name = "code_fk"))
private TournamentCode code;
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "type", foreignKey = @ForeignKey(name = "game_type_fk"))
private GameType type;
@Column(name = "home_score")
private int home_score;
@Column(name = "away_score")
private int away_score;
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name = "result_type", foreignKey = @ForeignKey(name = "result_type_fk"))
private ResultType result_type;
@Column(name = "status")
private boolean status;
@Column(name = "round")
private int round;
@Column(name = "locked")
private boolean locked;
@OneToMany(mappedBy = "game", fetch = FetchType.EAGER)
private List<TournamentGamesPlayers> players = new ArrayList<>();
}
и
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "tournament_games_players")
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "game")
public class TournamentGamesPlayers implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@ManyToOne
@JoinColumn(name = "tournament_game_id")
private TournamentGame game;
@Id
@ManyToOne
@JoinColumn(name = "playerid")
private Player player;
@Column(name = "home")
private boolean home;
}
Мне нужна помощь в выяснении того, как сохранить List<TournamentGamesPlayers>
при сохранении и / или обновлении TournamentGame
объект. Я создаю 45 игр. Первые 30 игр были известны игрокам, поэтому я установил их перед сохранением. Последние 15 не имеют записей для таблицы соединения TournamentGamesPlayers
, потому что мне нужно добавить их позже.
Я могу получить некоторые результаты с CascadeType.ALL
на стороне @OneToMany
, когда я изначально генерирую игры, но это не удается, когда я пытаюсь обновить игру с кажущейся бесконечной рекурсией / переполнением стека. не попасть.