有些需求,須要把上一步批量操做返回的主鍵做爲下個表的關聯使用,這個時候用mybatis批量操做,mybatis批量操做有些版本不能返回主鍵,只能一個一個的插入,這樣就下降了效率。mybatis
mybatis的主線版本,可以正確返回主鍵id,主線版本修復了這個問題,而且@Param能夠自定義命名
能夠本身自定義集合屬性名字
執行成功並返回主鍵id
框架
mybais的3.3.x-3.4.x源碼裏面判斷參數的屬性,並設值br/>在這些版本是修復了這個問題,可是還有限制,@Param只能是list或者是colletions或者是array才能返回id
接口方法裏面的屬性必須是list或者是colletions或者是array才能返回id
批量保存方法for裏面的屬性是list
ide
項目若是用mybatis-plus,MybatisDefaultParameterHandler類已經處理了這種狀況,若是是自定義的參數會轉換成map,而後根據map再進行轉換
得到參數以後,進行換行處理
獲取主鍵屬性,進行設值
源碼分析
一、有時候出現問題得查看歷史版本,並從提交問題單中找到解決的辦法,
二、沒有解決的方案,就重寫框架代碼,好比mybatisplus就是重寫了ParameterHandler來進行參數的進一步處理。
三、在項目中若是確實沒有好的解決辦法,那就暫時放下,有空就不斷的尋求最佳解決方案blog