我在试图找到这个问题的解决方案时陷入了困境。我有两篇(可以是任意数量的(博客文章共享相同的标签。
我为每个添加的帖子都有一组标签,所以重复的标签是不可能的,所以假设我添加了第一个带有标签的帖子";汽车;以及";蓝色";第二个柱子上有";汽车;以及";红色";。然后我会在数据库标签表中有car,红色,蓝色,所以car只有一次,但两个帖子都共享它,这让我陷入了因为共享标签而无法删除这两个帖子中的任何一个的境地。
如何只在最后一篇帖子被删除时删除标记,而不是之前(当我删除第一篇帖子时(?我不认为有任何级联类型可以帮助我解决这个问题,但我可能错了?(我使用了All和Remove,但不起作用(我有什么解决方案?
我在MySQL中使用spring-boot。
如果有人能为我指明正确的方向,我将不胜感激!
L。E:对于有同样问题的人,我使用Post(父(Tag(子(多对多关系上的cascade = {CascadeType.MERGE, CascadeType.PERSIST}
。以及使用循环来删除最后一个帖子之后的剩余标签。到目前为止一切正常。
您可以使用孤立删除选项,但当存在活动关系时,它会重新插入依赖的关联。你可以阅读这篇博客文章。
您可以使用事件侦听器,我建议您这样做。编写一个在删除标记时工作的事件侦听器,以便使用事件侦听器可以有条件地删除标记。您可以为事件侦听器阅读此内容。您可以使用@PostRemove
事件。