如果你用mybatis-plus自动生成的代码是不会遇到这个坑。
但是我之前用的是idea右侧那个database生成的实体类,就没有那么让人满意了。
一些数值类型的属性,一定要用他们的包装类,不要直接用基本数据类型。
比如int 要用Interger
long要用Long。
因为基本数据类型会有默认值为0,所以在update时,会先判断类中的每条属性是否有值,有值才进行更新这个字段,没有值就不做更新。
更新操作不是新增,所以更新时,用的对象可能就两三个字段有值,这个时候其他的数字类型,如果是基本类型,就会把数据改成0!
这就很坑了!所以要改成包装类型,这样默认值才是null,就不会被乱改了!