mybatis-plus 无法更新为null
时间: 2024-04-24 19:23:36 浏览: 94
你好!对于 MyBatis-Plus,当我们使用它进行更新操作时,默认情况下是不会更新为 NULL 的字段的。这是因为 MyBatis-Plus 的设计理念是只更新传入的非空字段,而不是更新所有字段。
如果你想要将某个字段更新为 NULL,可以通过设置字段值为 null 来实现。例如,如果你想将某个实体对象的某个属性设置为 NULL,可以将该属性设置为 null,并调用 MyBatis-Plus 提供的更新方法。
另外,如果你想要强制更新为 NULL,可以使用 MyBatis-Plus 提供的 `set` 方法来手动设置某个字段为 NULL。例如:
```java
UpdateWrapper<Entity> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("column_name", null);
```
这样就可以将指定的字段更新为 NULL。
希望以上信息对你有帮助!如果你还有其他问题,请随时提问。
相关问题
mybatis-plus中将字段为null 更新
在 MyBatis-Plus 中,如果想要更新字段为 null,需要使用 `set()` 方法,并将字段的值设置为 `null`。例如:
```
UpdateWrapper<Entity> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", 1)
.set("field1", null)
.set("field2", null);
int rows = entityMapper.update(null, updateWrapper);
```
其中,`eq()` 方法用于指定更新条件,`set()` 方法用于设置更新的字段及其值,`update()` 方法用于执行更新操作。在上述代码中,`field1` 和 `field2` 的值都会被更新为 null。
mybatis-plus查询操作把null的字段转换为-1
MyBatis-Plus提供了一种配置方式,允许你在查询结果映射时将数据库返回的NULL值自动转换为特定的默认值,比如你想把所有NULL的字段转为-1,你可以通过全局配置文件(application.yml 或 application.properties)中的`mapper-config.xml`来进行设置。
在全局配置文件中,添加如下内容:
```yaml
mybatis-plus:
mapper-config:
global-config:
result-map-processor: org.apache.ibatis plus.config.GlobalConfiguration.defaultResultMapProcessor
default-result-map-processor-param:
typeHandlerNullValue: -1
```
或者
```properties
mybatis-plus.mapper-config.global-config.result-map-processor=org.apache.ibatis.plus.config.GlobalConfiguration.defaultResultMapProcessor
mybatis-plus.mapper-config.global-config.default-result-map-processor-param.typeHandlerNullValue=-1
```
这会告诉MyBatis-Plus,在处理结果映射时,如果遇到NULL值,就将其替换为-1。注意,这里的`typeHandlerNullValue`参数就是你要替换的默认值。
阅读全文