在学习使用Java 开发程序,中间用到了mybatis-plus,如果我想要更新数据库中某个字段的值,那么先把实体查询出来再赋值该字段然后再调用updateById(entity)去更新,问题是如果当数据库设置了字段默认值时,那么这个值便会受影响更新到数据库中去,假设有字段age ,类型为int 默认值为0,例如:
QueryWrapper<EntityA> query = new QueryWrapper<>();
query .eq("id",whereEntity);
EntityA a = getone(query)
//在这里我只想修改名字
a.setname("小李");
baseMapper.updateById(a);
上面执行后字段age会变成0;
为了避免上面的问题我修改了一下代码如下:
QueryWrapper<EntityA> query = new QueryWrapper<>();
query .eq("id",whereEntity);
EntityA a = getone(query)
//在这里我只想修改名字
a.setname("小李");
a.setage(a.getage)
baseMapper.updateById(a);
感觉略有拙笨,你还有更好的方法吗?欢迎到公众号留言。