Mybatis中的updateByPrimaryKeySelective和updateByPrimaryKey
区别
- updateByPrimaryKeySelective()不会把null值插入数据库,避免覆盖之前有值的。
- updateByPrimaryKey()就会根据传入的对象,全部取值插入数据库,会存在覆盖数据的问题。
具体使用哪个函数看场景。
一些通用Mapper踩的坑
如tk.mybatis 、 mybatisplus等,在使用updateByPrimaryKeySelective()和updateByPrimaryKey()时,实体类上主键一定要加上@Id
注解。
用插件自动生成的实体类没有这个注解,怕忘记特记录一下。