java - 如何在不删除春季实体的情况下删除多对多关系中的引用?
问题描述
我正在尝试制作一个弹簧应用程序,您可以在其中喜欢和不喜欢游戏。我在玩家和游戏之间有一个多对多的关系。我已经做到了,当玩家喜欢游戏时,它会将这种关系添加到链接表中,而当玩家不喜欢游戏时,我想删除这种关系。我已经阅读了其他 stackoverflow 问题,他们说只是从相应的列表中删除。问题是只这样做是行不通的,因为数据库需要更新。我可以使用的是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<>();
玩家控制器:
@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
对于多对多关系不推荐使用
解决方案
推荐阅读
- azure-active-directory - 使用用户名和密码从 Azure Active Directory 获取访问令牌
- python - 如何将字典中的 dup 与 Python 结合起来
- python - 剪切函数:无法将数组数据从 dtype('float64') 转换为 dtype('
我想将我的 Dataframe 中的列中的内容更改为“好”或“坏”。该列填充了从 1 到 10 的数字。1-5 是坏的,6-10 是好的。为此,我想使用 cut 方法。
bins = (1, 5.5, 10) rating = ['bad',
- http-status-code-401 - 未找到从 MIA 到 UVF 404 的 Sabre 国际航班优惠
- r - 输出中带有图表的汇总表
- selenium - Selenium 返回错误:元素不可点击
- asp.net - Autofac InstancePerRequest 返回新实例
- python - x[0, ... , -1] 语法在 python 中是什么意思?
- android - 移除 Item RecyclerView 时添加自定义动画
- visual-studio-code - SetAscending Business Central 销售订单列表