mybatisplus-plus的saveorupdate方法注意事项
时间: 2023-07-29 15:11:10 浏览: 443
springboot整合其他技术栈(redis缓存,mongodb,exsyexcel,Mybatis-plus)
MyBatis-Plus的saveOrUpdate方法是用于保存或更新实体对象的方法。以下是一些需要注意的事项:
1. 实体对象必须有主键字段,并且主键字段不能为空。否则,该方法无法判断是执行插入操作还是更新操作。
2. 如果实体对象的主键字段值为空,则该方法会执行插入操作。插入操作会将所有字段的值都插入到数据库中。
3. 如果实体对象的主键字段值不为空,则该方法会先根据主键字段查询数据库,如果存在记录,则执行更新操作;如果不存在记录,则执行插入操作。
4. 实体对象的所有字段都会参与插入或更新操作,无论字段值是否为空。如果某个字段值为null,插入数据库时会被赋予null值。
5. 实体对象的更新操作是基于主键字段进行的,因此在更新之前必须保证主键字段的值是正确的。
6. 如果实体对象有自动生成的主键字段(如自增长),在执行插入操作后,会将生成的主键值回填到实体对象中。
7. 如果实体对象有逻辑删除字段,执行插入或更新操作时,会自动将逻辑删除字段的值设置为默认值(通常是0)。
总之,使用saveOrUpdate方法时,需要确保实体对象有主键字段,并且主键字段值正确。同时,注意实体对象的所有字段都会参与插入或更新操作。
阅读全文