, если вы хотите, чтобы в игре был внешний ключ игрока, просто добавьте @ManyToOne RelationShip:
@Entity
@Table(name="player")
public class Player {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer idPlayer;
private String name;
private LocalDateTime registerDate;
private float successRate;
public Player() {
}
public Player(Integer idPlayer, String name, LocalDateTime registerDate, float successRate) {
this.idPlayer = idPlayer;
this.name = name;
this.registerDate = registerDate;
this.successRate = successRate;
}
//getters n setters
}
, и для игры вы можете иметь это:
@Entity
@Table(name = "game")
public class Game {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer idGame;
@ManyToOne
@JoinColumn(name="player_id", nullable=false)
@OnDelete(action = OnDeleteAction.CASCADE)
private Player player;
private Integer valueDice1;
private Integer valueDice2;
private boolean won;
public Game() {
}
public Game(Integer idGame, Integer idPlayer, Integer valueDice1, Integer valueDice2, boolean won) {
super();
this.idGame = idGame;
this.idPlayer = idPlayer;
this.valueDice1 = valueDice1;
this.valueDice2 = valueDice2;
this.won = won;
}
//getters n setters
}
так Теперь, если вы удалите игрока, аннотация OnDelete удалит игры-сироты вместе с вашим игроком. Я не знаю, почему вы так попробовали JoinColumn. Стоит отметить, что вы также можете смоделировать это как двунаправленное и использовать возможность удаления сирот, установленную в true. Вы можете прочитать об этом подробнее здесь