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
屬性指定了要使用的刪除方法。
請根據你的實際情況選擇適合的方法來實現級聯刪除。