mybatis plus在实体中设置null没有更新
时间: 2024-02-05 09:14:17 浏览: 117
MyBatis-Plus 查询返回实体对象还是map
在 MyBatis Plus 中,如果实体中的属性值为 null,那么在执行 update 操作时,对应的字段是不会被更新的。这是因为 MyBatis Plus 默认会忽略实体中值为 null 的属性。
如果你想要将实体中的 null 值更新到数据库中,可以通过设置 MyBatis Plus 的全局配置项 `db-config.xml` 中的 `insertStrategy` 和 `updateStrategy` 属性来实现。具体操作如下:
1. 在 `db-config.xml` 中添加如下配置:
```
<global-config>
<db-config>
<insert-strategy select="com.baomidou.mybatisplus.enums.FieldStrategy.NOT_EMPTY"/>
<update-strategy select="com.baomidou.mybatisplus.enums.FieldStrategy.NOT_EMPTY"/>
</db-config>
</global-config>
```
2. 在实体类中,需要将需要更新的属性设置为 `null`:
```
User user = new User();
user.setId(1L);
user.setName(null); // 将 name 属性设置为 null
userMapper.updateById(user); // 执行更新操作
```
这样就可以将实体中的 null 值更新到数据库中了。
阅读全文