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) 个答案