bug集: 写更新接口遇到坑, 注意,自动代码生成时候检查实体类entity,以及原因

95 阅读1分钟

如果发现实体类中存在不是包装类的情况

修改为包装类

修改原因: 例子 根据id 修改其状态status

正常: UPDATESET update_time=?, status=? WHERE role_id=?
异常: UPDATESET update_time=?, status=?,sort = ? WHERE role_id=?

但是突然发现 sort 排序字段 每次修改都会被改为0默认 (看了一眼数据库 没啥问题)

很奇怪, 检查实体类, 发现 是

private long sort; 

顿时明白了, long类型默认是0L 而Long才是null

所以每次修改 都会设置sort是0 修改基本类型改为包装类

代码段

  public ResultResponse changeStatus(AxRole role) {

        AxRole role1 = new AxRole();
        role1.setRoleId(role.getRoleId());
        role1.setStatus(role.getStatus());

        return baseMapper.updateById(role1) < 1 ? ResultResponse.error("冻结角色失败!!!") : ResultResponse.ok("操作成功!!!");

    }