一、應用場景
1、多個表的數據一起刪除的時候,有的時候不會建立外鍵,但主表的關聯 表很多的時候,可以直接利用mybatis 進行多表刪除。
二、注意事項
mybatis 中多個foreach 循環,第一次循環的collection 看到的值是一個(數組、list、map、對象,由collection的配置主導)。
第二次foreach 是直接copy第一個foreach的對象值,這個時候會一直累加對象。
解決方案
數組爲例
dao層去掉@Param註解
void batchDeleteSysTransferRegist(String rowData[]);
mybatis
<delete id="batchDeleteSysTransferRegist" parameterType="string">
delete from sys_transfer_regist_item where transfer_regist_id in
<foreach item="rowData" collection="array" open="(" separator="," close=")">
#{rowData}
</foreach>
;delete from sys_transfer_regist_piece where transfer_regist_id in
<foreach item="rowData1" collection="array" open="(" separator="," close=")">
#{rowData1}
</foreach>
......
</delete>
切記;隔開。