为了账号安全,请及时绑定邮箱和手机立即绑定

关于Mybatis-Plus的LambdaQueryWrapper的实际使用问题

https://img1.sycdn.imooc.com//5d28419d00011edf10870284.jpg

哈喽,老师,在看了老师的教程后在项目中引入了Mybatis-Plus。想请教一个实际使用上的问题。

Q1:在第一个红色框中,我使用的这个notIn需要判断传入的值是否为空的。不然会报错,是否有更好的方法;

Q2:在第二个红色框中,我使用的deleteBatchIds传入的值也需要判断下是否为空的,不然也会报sql的错误;

上面的两个问题,主要是想问下有没有更好的方法,还是说就是按照上图代码的解决方式。

下图是报错的问题,应该是因为传入的参数为空的时候拼接sql出错了


https://img1.sycdn.imooc.com//5d28423d0001b48916300196.jpg

先谢谢老师了!!!???


正在回答

1 回答

       关于第一个问题,你可以使用,第一个参数为condition的notIn方法,如果condition为false,该条件就不会加入到sql中。

       我写了个类似的例子,供你参考。

       lambdaQuery.notIn(problemIds.size() > 0, User::getAge , problemIds);

       关于第二个问题,我没有太好的解决办法,因为该方法要求idList 主键ID列表(不能为 null 以及 empty)。所以得先做一下非空非empty判断。可以使用MP提供的工具类进行判断,代码如下:

if(CollectionUtils.isEmpty(needDelIds)) {

//你的删除业务逻辑

}

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于Mybatis-Plus的LambdaQueryWrapper的实际使用问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信