阅读量:1
MyBatis提供了两种级联删除的方法:
- 使用
<delete>
标签来定义级联删除的SQL语句。在该标签中可以使用<foreach>
标签来循环删除多个相关的记录。
例如:
<delete id="deleteUser" parameterType="int"> DELETE FROM user WHERE id = #{id}; </delete> <delete id="deleteUserAndOrders" parameterType="int"> DELETE FROM user WHERE id = #{id}; DELETE FROM order WHERE user_id = #{id}; </delete>
- 使用
<collection>
标签来定义级联删除。在该标签中可以使用delete
属性来指定要使用的删除方法。
例如:
<resultMap id="userResultMap" type="User"> <id property="id" column="id" /> <result property="name" column="name" /> <collection property="orders" ofType="Order" delete="deleteOrder" column="user_id"> <id property="id" column="order_id" /> <result property="name" column="order_name" /> </collection> </resultMap> <delete id="deleteOrder" parameterType="int"> DELETE FROM order WHERE id = #{id}; </delete>
在上述示例中,<collection>
标签定义了一个级联删除的集合属性,其中的delete
属性指定了要使用的删除方法。
请根据你的实际情况选择适合的方法来实现级联删除。