java - 如何删除两个实体之间的多对多关联?

标签 java hibernate hibernate-mapping

假设我有两个实体以及它们之间在 Hibernate 中映射的双向多对多关系。

两个类中的 xml 配置如下所示:

<hibernate-mapping>
    <class name="com.example.MyEntity">
        <set name="myOtherEntities" cascade="all-delete-orphan">
            <key column="entity_id"/>
            <many-to-many column="my_other_entity_id" class="com.example.OtherEntity" />
        </set>
    </class>
</hibernate-mapping>

如何终止它们之间的关联而不删除任何实体?

如果我clear()MyEntity中设置并调用Session.flush(),那么MyOtherEntity对象被删除,但我只想清除连接表中的记录。

最佳答案

有两种方法可以实现此目的。

1) 使用 Hibernate native 查询 2)使用HibernatecreateSQLQuery()

关于java - 如何删除两个实体之间的多对多关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19094718/

相关文章:

java - Hibernate 返回 com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException : Duplicate entry

java - 获取下一个同名 Android 的 Jsoup 元素

java - 通过浏览器将音频输入到 Java/处理 Applet?

java - 具有两个角色的一个用户的输出

java - 使用 Jackson 序列化 Collection 时出现 LazyInitializationException

java - 使用 Hibernate 将 SQL 列的 varchar 类型映射到 Java 的 java.net.URL

java - 这是递归的正确使用吗?

java - 不允许在 for 循环中操作 TreeSet

java - @Transactional 注释在 Spring MVC 中不起作用

java - 更新时 Hibernate 集合为空