mybatis-plus.global-config.db-config.field-strategy配置
时间: 2025-07-05 19:06:22 浏览: 1
### MyBatis-Plus `field-strategy` 配置说明
在 MyBatis-Plus 中,`global-config.db-config.field-strategy` 是用于控制字段策略的重要属性。此配置项决定了实体类中的字段如何映射到数据库表的列以及在执行插入或更新操作时的行为。
#### 字段策略选项及其含义
1. **IGNORED(忽略)**
当设置为 IGNORED 时,表示如果某个字段为空,则不会将其写入数据库中。这意味着对于新增记录而言,任何未赋值的字段都不会被包含在 SQL 插入语句里;而对于修改现有数据来说,只有那些有实际内容变化的字段才会参与 UPDATE 操作[^2]。
2. **NOT_NULL(非空)**
NOT_NULL 表示当且仅当字段不为 null 才会进行相应的 CRUD 操作。即在插入新纪录时,null 值会被排除在外;而在更新已有条目时,除非该字段确实发生了变更并具有有效的新值,否则也不会涉及这些字段。
3. **NOT_EMPTY(非空白字符串/集合等)**
对于 String 类型或其他可变长度的数据结构如 List/Set 等,默认情况下 NOT_EMPTY 和 NOT_NULL 的行为相似——它们都只会处理非空的情况。但是针对特定类型的对象,比如 Java Bean 或者 Map 结构内的键值对,NOT_EMPTY 还能进一步区分是否真的存在有意义的内容而非仅仅是形式上的填充。
4. **DEFAULT(默认全部)**
默认状态下,所有定义好的实体类成员变量都会参与到持久层的操作之中,无论其当前是否有具体的数值赋予给它。这通常是最简单直接的方式,但也可能导致不必要的全量更新问题,特别是在高并发环境下可能引发脏读等问题。
```java
// 示例代码展示如何配置 fieldStrategy 属性
@Configuration
public class MybatisPlusConfig {
@Bean
public GlobalConfig globalConfiguration() {
GlobalConfig config = new GlobalConfig();
// 设置全局配置下的 DbConfig 实例
GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig();
// 将 FieldStrategy 设定为你想要使用的枚举值之一
dbConfig.setFieldStrategy(FieldStrategy.NOT_NULL);
config.setDbConfig(dbConfig);
return config;
}
}
```
阅读全文
相关推荐

















