int updateById(@Param(Constants.ENTITY) T entity);
通过传入的 id 进行数据更新,默认只更新设置数据的字段。
@Data @AllArgsConstructor @NoArgsConstructor @Accessors(chain = true)
@TableName("user") public class User { @TableId("userId") private int userId;
private String password; private int type; } @Mapper public interface UserDao
extends BaseMapper<User> { } //这个方法用来更新用户的密码,user对象之设置了id和password属性 @Override
public void updateUserPassword(int userId, String password) { User user = new
User(); user.setUserId(userId); user.setPassword(password); userDao.updateById(
user); }
但当执行时发现 type 属性也被更新了,且为 int 默认值 0。
一顿百度,什么也没查到之后发现
需要设置 实体类 user 的 type 为 Integer,因为 int 不能为 null,而 Integer 可以。
@Data @AllArgsConstructor @NoArgsConstructor @Accessors(chain = true)
@TableName("user") public class User { @TableId("userId") private Integer userId
; private String password; private Integer type; }

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信