我好像发现mp的一个bug
lambdaQueryWrapper.eq(StringUtil.isNotEmpty(xxx),Dto::getXX,new BigDecimal(xxx));
我遇到的情况类似于这个
代码的场景是 我需要判断xxx是否是空字符串,如果是空字符串,不进行拼接sql,如果不是,转换为BigDecimal
但是如果我现在发现,当condition为false时,mp也会检查后面代码的合理性,这个好像有点不合理。
类似于下面的代码:
lambdaQueryWrapper.eq(false,Dto::getXX,BigDecimal.ONE.divide(BigDecimal.ZERO));
当我第一个参数为false时,mp会检查1除以0的合理性
按理说,应该是类似于
if(A && B){}
当A为false时,B都直接不会运行到才对。