当前使用版本(必填,否则不予处理)

3.4.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

最新版依然存在

重现步骤(如果有就写完整)

数据库存在id:1 age:12 1.User user= new User(1,11); queryWrapper.eq(User ::getId, user.getId()); queryWrapper.and(wrapper -> { wrapper.isNull(User ::setAge).or().lt(user.getAge()!=null,User ::getAge, user.getAge()); }); userService.saveOrUpdate(user, queryWrapper);

报错信息

源码: default boolean saveOrUpdate(T entity, Wrapper updateWrapper) { return update(entity, updateWrapper) || saveOrUpdate(entity); } 1.update(entity, updateWrapper)更新结果为0,接下来执行saveOrUpdate,saveOrUpdate中检查id存在,直接根据id更新,丢弃了我原本的更新条件

建议新增方法 MyBatis-Plus saveOrUpdate(T entity, Wrapper<T> updateWrapper) 默认实现问题

Comment From: beichenhpy

你可以自己实现saveOrUpdate方法。。