由于项目中使用了较多updateByQuery方法,直接删除工作量太大,了解作者顾虑后在updateByQuery方法增加了ignoreProperties参数,可以更好的解决问题,如果需要不更新默认值,只需要增加传递不更新的属性名即可。

public class User {
  private String username;
  private Byte type = 1;
}

User user = new User();
user.setUsername("Jim");
mapper.updateByQuery(user, new Query().eq("age", 10));
//上面方法生成的SQL为:UPDATE user SET username = 'Jim', type=1 WHERE age = 10
mapper.updateByQuery(user, new Query().eq("age", 10), "type");
//上面生成的SQL为:UPDATE user SET username = 'Jim' WHERE age = 10