關(guān)于Mybatis-Plus的LambdaQueryWrapper的實(shí)際使用問題
哈嘍,老師,在看了老師的教程后在項(xiàng)目中引入了Mybatis-Plus。想請教一個(gè)實(shí)際使用上的問題。
Q1:在第一個(gè)紅色框中,我使用的這個(gè)notIn需要判斷傳入的值是否為空的。不然會(huì)報(bào)錯(cuò),是否有更好的方法;
Q2:在第二個(gè)紅色框中,我使用的deleteBatchIds傳入的值也需要判斷下是否為空的,不然也會(huì)報(bào)sql的錯(cuò)誤;
上面的兩個(gè)問題,主要是想問下有沒有更好的方法,還是說就是按照上圖代碼的解決方式。
下圖是報(bào)錯(cuò)的問題,應(yīng)該是因?yàn)閭魅氲膮?shù)為空的時(shí)候拼接sql出錯(cuò)了
先謝謝老師了?。?!???
2019-07-12
? ? ? ?關(guān)于第一個(gè)問題,你可以使用,第一個(gè)參數(shù)為condition的notIn方法,如果condition為false,該條件就不會(huì)加入到sql中。
? ? ? ?我寫了個(gè)類似的例子,供你參考。
? ? ? ?lambdaQuery.notIn(problemIds.size() > 0, User::getAge , problemIds);
? ? ? ?關(guān)于第二個(gè)問題,我沒有太好的解決辦法,因?yàn)樵摲椒ㄒ骾dList 主鍵ID列表(不能為 null 以及 empty)。所以得先做一下非空非empty判斷。可以使用MP提供的工具類進(jìn)行判斷,代碼如下:
if(CollectionUtils.isEmpty(needDelIds)) {
//你的刪除業(yè)務(wù)邏輯
}