有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何删除多对多关系中的引用而不在spring中删除实体?

我正在尝试制作一个spring应用程序,你可以喜欢它,也可以不喜欢它。我在球员和比赛之间有很多关系。我这样做是为了,当一个玩家喜欢一个游戏时,它会将这种关系添加到链接表中,当一个玩家不喜欢一个游戏时,我会删除这种关系。我读过其他问题,他们说只需从各自的列表中删除。问题是,仅仅这样做是行不通的,因为数据库需要更新。我可以使用的东西是playerRepository.delete(player),但这会删除引用和播放器,这不是我想要的。我只想删除那个引用

玩家等级:

@ManyToMany
@JoinTable(name = "game_like", joinColumns = @JoinColumn(name = "player_id"), inverseJoinColumns = @JoinColumn(name = "game_id"))
private List<Game> games = new ArrayList<>();

游戏类:

@ManyToMany(mappedBy = "games")
@JsonIgnore
private List<Player> players = new ArrayList<>();

PlayerController:

@DeleteMapping(path = "api/v1/player/{id}/unlove")
public void unloveGame(@PathVariable Long id, @RequestBody Game game) {
    Player player = playerRepository.findById(id).get();
    game.removePlayer(player);
    player.removeGame(game);
    playerRepository.delete(player);

}

我怎样才能做到这一点

编辑: 我也尝试过使用playerRepository.save(player),但这也不起作用。我还读到,对于多对多关系,不建议使用CascadeType.remove


共 (0) 个答案