Hibernate jpa中多对多关系的替代方法

Hibernate jpa中多对多关系的替代方法,hibernate,jpa,many-to-many,Hibernate,Jpa,Many To Many,如何在不使用jpa@manytomany注释的情况下编写具有多对多关系的代码?例如,两类软件和标签。当我删除标签时,它会删除所有软件。我尝试使用各种方法使用@manytomy注释来实现它,但它不起作用。我在这个网站上看到了一些类似于我的问题的东西,但是任何一个都给出了代码示例。我想双方都应该有“一对一”的关系,但如果能有一个密码就好了 或者如果可能的话,如何使用@manytomany 更多信息:如果我们有soft1、soft2 tag1和soft2 tag2,并且我们删除了tag1,那么只应删除

如何在不使用jpa@manytomany注释的情况下编写具有多对多关系的代码?例如,两类软件和标签。当我删除标签时,它会删除所有软件。我尝试使用各种方法使用@manytomy注释来实现它,但它不起作用。我在这个网站上看到了一些类似于我的问题的东西,但是任何一个都给出了代码示例。我想双方都应该有“一对一”的关系,但如果能有一个密码就好了

或者如果可能的话,如何使用@manytomany

更多信息:如果我们有soft1、soft2 tag1和soft2 tag2,并且我们删除了tag1,那么只应删除soft1。hibernate能处理吗?

试试

@org.hibernate.annotations.Cascade(
   {org.hibernate.annotations.CascadeType.PERSIST, 
    org.hibernate.annotations.CascadeType.MERGE, 
    org.hibernate.annotations.CascadeType.REFRESH, 
    org.hibernate.annotations.CascadeType.DETACH, 
    org.hibernate.annotations.CascadeType.DELETE_ORPHAN}
)
这是为了从级联中删除org.hibernate.annotations.CascadeType.remove,以避免出现以下情况

您删除id为5的软件 hibernate删除id为5和7的标记 所有用这些ID标记的软件行都将被删除,级联将再次启动,因此您可能会得到一个空的DB。
你的意思是你想对多对多关系进行级联删除吗?也许它与删除有某种关联_ORPHAN@user369759-嗨!我也有同样的要求。我有很多关系。现在我需要的是,如果我删除tag2,那么只有tag2和tag_soft表中的任何关联应该被删除,而soft2不应该被删除。如果我删除了soft2,那么应该删除soft2和tag_soft表中的任何关联,但是不应该删除tag1和tag2。你能帮我吗?你应该手动查找和删除暗杀,以解决约束-删除对象中的内容,然后保存更改,然后删除对象。您可能希望在一个事务的上下文中执行所有这些操作。