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

3.0.5

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

按照文档说明,使用update 语句时,entity 会自动给生成where条件。 userUpdateWrapper.set("age",10); 会更新数据库字段值。

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

QueryWrapper userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.eq("id",5); List userList= userMapper.selectList( userQueryWrapper); userList.forEach(System.out::println);

    //更新其中一条记录
    User user = userList.get(0);

UpdateWrapper userUpdateWrapper = new UpdateWrapper<>(); userUpdateWrapper.set("age",10); userMapper.update(user,userUpdateWrapper); MyBatis-Plus 使用UpdateWrapper后,整张表被更新了

报错信息

居然整个表的这个字段都更新了 MyBatis-Plus 使用UpdateWrapper后,整张表被更新了

Comment From: QingXie30C

理解有误

Comment From: FifthSofa

类似遭遇,运行同事的单元测试,然后我清空了整表的数据。。。 贴一下问题,供后人参阅 上面的代码把

UpdateWrapper userUpdateWrapper = new UpdateWrapper<>();
userUpdateWrapper.set("age",10);
userMapper.update(user,userUpdateWrapper);

改为

UpdateWrapper userUpdateWrapper = new UpdateWrapper<>();
userUpdateWrapper.eq("age",10);
userMapper.update(user,userUpdateWrapper);

附上作者大大的DOC文档: https://github.com/baomidou/mybatis-plus-doc/blob/master/guide/wrapper.md