QueryWrapper我用的是这种形式的
eq(R column, Object val)
文档里说null值不会加入sql的生成,但是实际测试还是会。
mp有这种形式的
eq(boolean condition, R column, Object val)
但是这种要多写很多!=null
的判断
所以有没有什么方法(或者说要配置什么)才能让QueryWrapper中的null值不参与sql的生成
QueryWrapper我用的是这种形式的
eq(R column, Object val)
文档里说null值不会加入sql的生成,但是实际测试还是会。
mp有这种形式的
eq(boolean condition, R column, Object val)
但是这种要多写很多!=null
的判断
所以有没有什么方法(或者说要配置什么)才能让QueryWrapper中的null值不参与sql的生成
看了下 MyBatis-Plus 官方文档,还可以用 allEq()方法中的 boolean null2IsNull 这个参数来解决这个问题。
不过,换了个思路,这个参数的作用是将value为null 的条件 自动转化为 isNull。
allEq(BiPredicate<R, V> filter, Map<R, V> params, boolean null2IsNull)
参数说明:
null2IsNull : 为true则在map的value为null时调用 isNull 方法,为false时则忽略value为null的
4 回答1k 阅读✓ 已解决
4 回答651 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答657 阅读✓ 已解决
2 回答1.2k 阅读
2 回答1.6k 阅读
好家伙,我还跑去翻源码,翻了一会发现跑偏了,直接对queryWrapper改造不就行了。
重写queryWrapper.addCondition就行